常用的shell脚本

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;"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yanko24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值