shell脚本 连接数据库 新增数据 查询数据 连接不同数据库 shell日期获取 格式三分钟前 上周 昨天修改

版权声明:本文为博主原创文章,转载请标注出处,谢谢。 https://blog.csdn.net/qq_33182756/article/details/81541797

注释:shell 单括号运算符号:a=$(date);等同于:a=`date`

双括号运算符:a=$((1+2));echo $a;等同于:a=`expr 1 + 2`

东西有点多,就一起都讲了。

日期格式:

获取当前日期:1,date "+%Y-%m-%d %H:%M:%S"  结果:2018-08-09 18:12:18

                         2,date -d "now" +%Y-%m-%d     now 可以换成yesterday等 如:date -d "1 days ago" +%Y-%m-%d 

当前时间微妙数:1,date "+%s"  结果:1533809599

                             2,date +%s -d'2018-08-08 00:00:00'

获取具体日期的前几时间:

                             1,为 date -d "n days ago $yesterday" +%Y-%m-%d

                               n 的取值范围为任何整数,例如-3,-2,0,1,2,3,等等.......days 可以换成 minutes hours week 等等。

时间相加:转换成 微妙数进行操作  date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds"

       相减  :date +%s -d '2010-01-01' - date +%s -d '2009-01-01 11:11:11'

连接数据库:

#!/bin/bash
#连接MySQL数据库
Host=127.0.0.1(或者数据库服务器地址)
User=username
PW=password
 
#本地连接
mysql -u$User -p$PW <<EOF #开始SQL语句
use DATABASE_NAME;#选择数据库(选择模式)
SELECT * FROM TABLE_NAME;#执行SQL语句
COMMIT;#对于更新表格的操作执行commit语句
EOF #结束SQL语句
#远程连接
mysql -h$Host -u$User -p$PW <<EOF #指定Host,其他不变
use DATABASE_NAME;
SELECT * FROM TABLE_NAME;
COMMIT;

如果要操作多个数据库,要建立多个数据库连接

depts=`mysql -u $USER $DATABASE <<EOF | tail -n +2
SELECT DISTINCT dept FROM $TABLE;
EOF`

data=`mysql -h$les_Host -p$les_PW -u$les_User  -D$les_db -s <<EOF #指定Host,其他不变
SELECT count(*) FROM $les_tb WHERE actual_start_time<="$init_time" AND status=1;
COMMIT;
EOF`
  

将数据保存在变量里面,注意:第二个数据库语句 -s 如果不增加 -s 会放回字符串,如果下面语句需要使用的话,这样会报错的

上面的语句  返回的结果是  data 的值为:  count(*) 250

定时任务执行:

直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

记住几个特殊符号的含义: 
“*”代表取值范围内的数字, 
“/”代表”每”, 
“-”代表从某个数字到某个数字, 
“,”分开几个离散的数字

使用方法:参考Linux 执行定时任务 shell脚本

最后推荐:shell生成随机字符串的方法: shell 生成指定范围随机数与随机字符串 

Linux下使用shell脚本自动执行脚本文件

我的脚本的代码:托管github:mydash 脚本连接数据库

猜你喜欢

转载自blog.csdn.net/qq_33182756/article/details/81541797