Linux中定时执行SQL的操作步骤

Linux定时执行SQL操作步骤

1、新建脚本文件,例如(.sh文件,.py文件等)

touch test.sh
touch test.sql

2、给脚本添加可执行权限

chmod +x test.sh

3、编辑脚本

vi test.sh

输入要执行的命令(这里以连接MySQL执行SQL语句为例),其中-u后面的xxx是登录MySQL的用户名,-p后面的xxx是你的登录密码,后面的test是要连接的数据库名称,最后是把test.sql中的内容重定向到数据库执行。

#!/bin/sh
mysql -uXXX -P3306 -pXXX  test < test.sql

编辑test.sql文件

vi test.sql

test.sql文件中输入要执行的SQL

select * from abc where id = '1' limit 1

4、添加crontab 定时任务

执行命令:

crontab -e

输入i进入编辑模式,在定时任务列表中添加一条任务:

10 16 * * *  sh test.sh > /root/res.txt 2>&1

添加完成后,按esc键,输入:wq即可保存定时器,然后定时器就会在指定的时间执行这条任务了

注:这条命令的意思是每天下午16点10分执行test.sh脚本,将执行结果(包括错误信息)输出到root目录下的res.txt文件中

5、crontab 格式说明

minute   hour   day   month   week   command
# For details see man 4 crontabs
# Example of job definition:
.---------------------------------- minute (0 - 59) 表示分钟
|  .------------------------------- hour (0 - 23)   表示小时
|  |  .---------------------------- day of month (1 - 31)   表示日期
|  |  |  .------------------------- month (1 - 12) OR jan,feb,mar,apr ... 表示月份
|  |  |  |  .---------------------- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  表示星期(0 或 7 表示星期天)
|  |  |  |  |  .------------------- username  以哪个用户来执行 
|  |  |  |  |  |            .------ command  要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
|  |  |  |  |  |            |
*  *  *  *  * user-name  command to be executed

6、分享一个好用的crontab 在线工具,可以很直观的验证我们写的crontab表达式是否正确

在线crontab表达式执行时间计算

你可能感兴趣的:(笔记,运维,linux,定时任务,shell,数据库)