在 CentOS 系统中,可以使用 cron 服务来设置定时任务,也称为“cron jobs”。cron 是一种基于时间的作业调度器,允许安排命令或脚本在特定时间自动执行。
参考:
https://www.cnblogs.com/xingzc/p/5969777.html
状态查看
在 CentOS 上,cron 通常已经预装,我装完之后系统是默认开启的。可以通过以下命令检查 cron 服务是否正在运行:
1 | sudo systemctl status crond |
如果服务没有运行,你可以启动它:
1 | sudo systemctl start crond |
并且设置为开机启动:
1 | sudo systemctl enable crond |
设置 cron 任务
打开当前用户的 crontab 文件:
1 | crontab -e |
在打开的编辑器中,你可以添加新的 cron 任务。每个任务占一行,格式如下:
1 | * * * * * command to execute |
其中,五个星号分别代表:
分钟(0-59)
小时(0-23)
日期(1-31)
月份(1-12)
星期几(0-7,其中0和7都代表星期日)
例如,要每天中午12点执行 /path/to/your/script.sh 脚本,你可以添加:
1 | 0 12 * * * /path/to/your/script.sh |
保存并关闭编辑器。cron 会自动读取新的任务。
查看 cron 任务
要查看当前用户的所有 cron 任务,可以使用:
1 | crontab -l |
例子
实例1:每1分钟执行一次command
1 | * * * * * command |
实例2:每小时的第3和第15分钟执行
1 | 3,15 * * * * command |
实例3:在上午8点到11点的第3和第15分钟执行
1 | 3,15 8-11 * * * command |
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
1 | 3,15 8-11 */2 * * command |
实例5:每个星期一的上午8点到11点的第3和第15分钟执行
1 | 3,15 8-11 * * 1 command |
实例6:每晚的21:30重启smb
1 | 30 21 * * * /etc/init.d/smb restart |
实例7:每月1、10、22日的4 : 45重启smb
1 | 45 4 1,10,22 * * /etc/init.d/smb restart |
实例8:每周六、周日的1 : 10重启smb
1 | 10 1 * * 6,0 /etc/init.d/smb restart |
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
1 | 0,30 18-23 * * * /etc/init.d/smb restart |
实例10:每星期六的晚上11 : 00 pm重启smb
1 | 0 23 * * 6 /etc/init.d/smb restart |
实例11:每一小时重启smb
1 | * */1 * * * /etc/init.d/smb restart |
实例12:晚上11点到早上7点之间,每隔一小时重启smb
1 | * 23-7/1 * * * /etc/init.d/smb restart |
实例13:每月的4号与每周一到周三的11点重启smb
1 | 0 11 4 * mon-wed /etc/init.d/smb restart |
实例14:一月一号的4点重启smb
1 | 0 4 1 jan * /etc/init.d/smb restart |