Linux crontab自动执行命令、备份数据

前言:之前在搞postgresql数据库自动备库功能,因为是放在Linux的,没有选择pgAgent,最终选择了crontab

1、linux提供了两种自动执行命令的方式

  • at 只执行一次

  • crontab 周期性重复执行

因为数据库是重复备份,所以这边用crontab

2、crontab用法

楼主选择的是etc/crontab

Linux 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表示服务正常启动

Linux crontab自动执行命令、备份数据

启动服务:service crond start

重启服务:service crond restart

关闭服务:service crond stop

4、常见问题

如果etc/crontab里的命令没有执行,可以看下日志文件:/var/log/cron

之前楼主加了:21 10 * * *  /root/cronTest.sh

一直没有效果,记得加上user-name