Linux crontab自动执行命令、备份数据
前言:之前在搞postgresql数据库自动备库功能,因为是放在Linux的,没有选择pgAgent,最终选择了crontab
1、linux提供了两种自动执行命令的方式
-
at 只执行一次
-
crontab 周期性重复执行
因为数据库是重复备份,所以这边用crontab
2、crontab用法
楼主选择的是etc/crontab
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
比如上面截图的:21 10 * * * root /root/cronTest.sh,表示在早上10:21执行脚本cronTest.sh
楼主整理了一些常用的命令:
每一分钟执行一次command:cron默认每1分钟扫描一次,因此全为*即可
* * * * * command
每小时执行cronTest.sh脚本
0 1 * * * root /root/cronTest.sh
每一小时重启crond
* */1 * * * service crond restart
每天晚上21:30重启crond
30 21 * * * service crond restart
每小时的第10、第20分钟和第30分钟执行command
10,20,30 * * * * command
每天上午9-12点的第5分钟执行command
5 9-12 * * * command
每隔2天的上午9-12点的第5和10分钟执行command
5,10 9-12 */2 * * command
每个星期一的上午9点到12点的第5和第10分钟执行command
5,10 9-12 * * 1 command
每月1、10日的12:10重启crond
10 12 1,10 * * service crond restart
每周六、周日的12:10重启crond
10 12 * * 6,0 service crond restart
每天18:00至23:00之间每隔30分钟重启crond
0,30 18-23 * * * service crond restart
晚上11点到早上7点之间,每隔一小时重启crond
* 23-7/1 * * * service crond restart
每月的1号与每周一到周三的10点重启crond
0 10 1 * mon-wed service crond restart
3、crond启动相关命令
查看crond 状态:service crond status
如下图active表示服务正常启动
启动服务:service crond start
重启服务:service crond restart
关闭服务:service crond stop
4、常见问题
如果etc/crontab里的命令没有执行,可以看下日志文件:/var/log/cron
之前楼主加了:21 10 * * * /root/cronTest.sh
一直没有效果,记得加上user-name