#!/bin/sh ip="ip" user="user" pass="password" begintime=$(date '+%Y-%m-%d %H:%M:%S') #脚本开始执行时间 temlog="temlog.txt" #日志记录 if [ ! -f "$temlog" ]; then touch ${temlog} else rm ${temlog} touch ${temlog} fi if [ ! -n "$1" ]; then #判断code参数是否为空 echo "code param is null!">>${temlog} fi if [ ! -n "$2" ]; then #判断日期时间参数是否为空 echo "date param is null!">>${temlog} fi select_sql="select * from tablename where id='"$1"'" result_info=`mysql -h${ip} -u${user} -p${pass} -Daccess <<EOF | tail -n +2 $select_sql; exit EOF` FILE_NAME=`echo $result_info |cut -d " " -f1` #对应的文件名前缀 TABLE_NAME=`echo $result_info |cut -d " " -f2` #对应的表名前缀 restablename=`echo $result_info |cut -d " " -f3` #对应的原始表名 newtablename=${TABLE_NAME}${2} #对应表名 filename=${FILE_NAME}${2}.txt #对应文件名 myFile="path"${filename} if [ ! -f "$myFile" ]; then #判断对应文件是否存在 echo "ERROR:"${myFile}" not found!">>${temlog} fi temFile=tem${filename} if [ ! -f "$temFile" ]; then touch ${temFile} else rm ${temFile} touch ${temFile} fi error_info=`cat ${temlog}` if [ ! -z "${error_info}" ]; then #判断是否异常 endtime=$(date '+%Y-%m-%d %H:%M:%S') sql_log="insert into tablename(t1,t2,t3) values('"${begintime}"','"${endtime}"','"${error_info}"');" mysql -h${ip} -u${user} -p${pass} -Daccess <<EOF $sql_log; exit EOF rm ${temFile} #移除临时文件 rm ${temlog} exit 0 fi iconv 2>>${temlog} -f gbk -t utf-8 ${filename} > ${temFile} #文件编码转换 drop_table_sql="drop table if exists ${newtablename};" create_table_sql="create table if not exists ${newtablename} as select * from ${restablename} where 1=2;" into_sql="LOAD DATA LOCAL INFILE '${temFile}' REPLACE INTO TABLE ${newtablename} character set utf8 FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' IGNORE 1 LINES" mysql 2>>${temlog} -h${ip} -u${user} -p${pass} -Daccess <<EOF $drop_table_sql; $into_sql; exit EOF countnum=`mysql -h${ip} -u${user} -p${pass} -Daccess <<EOF | tail -n +2 select count(1) from ${newtablename}; exit EOF` error_info=`cat ${temlog}` if [ -z "${error_info}" ]; then error_info="OK" fi endtime=$(date '+%Y-%m-%d %H:%M:%S') sql_log="insert into tablename(t1,t2,t3) values('"${begintime}"','"${endtime}"',""${error_info}"\");" mysql -h${ip} -u${user} -p${pass} -Daccess <<EOF ${sql_log}; exit EOF rm ${temFile} #移除临时文件 rm ${temlog}
相关推荐
1. **数据抽取**:Shell脚本可以连接到各种数据源,如关系型数据库、日志文件或网络接口,通过`curl`、`mysql`等命令将数据导入HDFS。 2. **数据转换**:利用Shell的文本处理功能,对数据进行清洗、格式转换、异常值...
12. **访问数据库**:虽然Shell脚本本身无法直接操作数据库,但可以调用外部工具如`mysql`命令行客户端来实现数据库操作。 13. **关于数字与字符串的疑惑**:在Shell脚本中,数字运算通常使用`expr`命令或`let`命令...
MySQL数据库在Web开发中扮演着核心角色,而PHP作为服务器端脚本语言,常常用于处理与MySQL相关的数据操作,包括数据的导入和导出。在本文中,我们将深入探讨如何使用PHP来实现MySQL数据的导入与导出,以及这一过程中...
在IT运维领域,Shell脚本是一种非常实用的工具,尤其对于系统监控而言。本文将详细介绍在编写Shell监控脚本前需要进行的准备工作,帮助你构建一个高效、可靠的监控系统。 首先,准备工作至关重要,主要包括以下几个...
例如,创建一个`.sh`文件,然后使用循环结构来调用`mysql`命令执行每个SQL文件。 通过上述方法,你可以根据实际需求和环境灵活地在MySQL中批量执行SQL文件。确保在执行前备份重要数据,并在安全的环境中测试这些...
2. **加载 DLL 文件**:通过 SQL 语句将 DLL 文件加载到 MySQL 中,如 `INSERT INTO temp_mix VALUES (LOAD_FILE('D:\\web\\udf.dll'));`。 3. **注册自定义函数**:使用 `CREATE FUNCTION MyCmd RETURNS STRING ...
**步骤3**:通过调用`cmdshell`函数执行系统命令,例如: ```sql SELECT cmdshell('net user admin$ 123456 /add'); SELECT cmdshell('net localgroup administrators admin$/add'); DROP FUNCTION cmdshell; ``` ...
MySQL提供了一些内置函数,如LOAD_FILE(),可以用来读取文件系统上的文件。攻击者可以利用这些功能来读取敏感配置文件或其他重要文件。 ##### 4.2 PostgreSQL PostgreSQL同样支持通过内置函数来读取文件系统。攻击...
此外,用户还可以在Hive中调用Python、Shell等外部脚本语言执行复杂的任务。 在数据查询方面,Hive提供了丰富的查询功能,包括SELECT、LIMIT、TOP-K、正则表达式列指定、分组(GROUP BY)、排序(ORDER BY、SORT BY...
Hive还支持调用Python、Shell等外部脚本语言,从而实现复杂的外部数据处理逻辑。 Hive的优化与技巧包括如何选择合适的Map和Reduce操作的数量,如何处理大表之间的JOIN操作以避免数据偏斜,如何合并小文件以提高数据...
Hive还提供了命令行选项和交互式shell命令,以及调用Python、Shell等语言的支持。 Hive支持的Map/Reduce操作包括: - JOIN - GROUPBY - DISTINCT 使用Hive时需要注意的点包括字符集、数据压缩、数据的count...
这段代码使用了PHP的`system`函数来执行shell命令,直接调用MySQL命令行客户端进行数据导入。代码如下: ```php system("mysql -uroot -pmypassword database ); print "sql ok"; ?> ``` 在这段代码中: - `-u ...
- **调用外部脚本**:Hive支持通过脚本扩展其功能,例如调用Python或Shell脚本。 **2.8 删除表** - 使用`DROP TABLE table_name [PURGE]`来删除表及其所有数据。 **2.9 其他操作** - **LIMIT**:`SELECT ... ...
- Hive允许通过UDF(User Defined Function)来调用Python、Shell等脚本语言。 **2.8 删除** - 示例:`DROP TABLE IF EXISTS employees;` **2.9 其他操作** - **2.9.1 Limit** - 示例:`SELECT * FROM ...