1. 时间相关
# 打印明天的的时间
echo `date -d "2018-10-10 +1 days" "+%Y-%m-%d %H:%M:%S"`
# 打印当前系统时间
echo `date -d "" "+%Y-%m-%d %H:%M:%S"`
2. 远程连接mysql获取查询结果(一个字段)
#!/bin/bash

# mysql -h[ip] -u[username] -p[password] -P[port] [database] [-N|--skip-column-names] -e ""
# -N|--skip-column-names:表示对查询结果不显示字段名
# -e:远程执行内容,不需要登录mysql
# 也可以将echo ${TEMP}替换为echo ${TEMP} > /home/yangqi/logs/mysql.log
# 表示将查询的结果变量直接打保存到mysql.log中
TEMP=$(mysql -hslave5 -uyangqi -pxiaoer -P3306 test1 --skip-column-names -e "select order_id from us_order;")
echo ${TEMP} [ > /home/yangqi/logs/mysql.log]
3. hive相关
3.1. 判断hive中的库是否存在
#!/bin/bash

# 数据库名称
DATABASE=databaseName

hive -e "desc database ${DATABASE};" 2>&1 | grep 'Database does not exist'
# $?:表示最后运行的命令的结束代码(返回值)
# 错误返回0,正确返回1
ISEXIST=$?
echo ${ISEXIST}
# if流程控制语句
if [ ${ISEXIST} -ne 0 ];
then
    echo The database ${DATABASE} already exist!
else
    echo The database ${DATABASE} is not exist!
fi
3.2. 判断hive中的表是否存在
#!/bin/bash

# 数据库名称
DATABASE=databaseName
# 表名称
TABLE=tableName

hive -e "desc ${DATABASE}.${TABLE};" 2>&1 | grep 'Table not found'
# $?:表示最后运行的命令的结束代码(返回值)
# 错误返回0,正确返回1
ISEXIST=$?
echo ${ISEXIST}
if [ ${ISEXIST} -ne 0 ];
then
    echo The table ${DATABASE}.${TABLE} already exist!
else
    echo The table ${DATABASE}.${TABLE} is not exist!
fi
3.3. 删除hive中已经存在的数据库
#!/bin/bash

# 数据库名称
DATABASE=databaseName

hive -e "drop database ${DATABASE} cascade;"
5.4. 在hive中创建数据库
#!/bin/bash

# 数据库名称
DATABASE=databaseName

hive -e "create database if not exists ${DATABASE};"
5.5. 在hive中创建表
#!/bin/bash

# 数据库名称
DATABASE=databaseName
# 表名称
TABLE=tableName

# partitioned by:可选内容,如果不是分区表,可以不使用
hive -e "use ${DATABASE}; create table if not exists ${TABLE} ( order_id int, order_no string, order_date timestamp, user_id int, user_name string, order_money double ) partitioned by (year string, month string, day string) row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile;"