crontab命令 / crond服务:
- crontab命令 :
设置定时任务,即用户任务调度。 - crond服务:
Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。操作系统默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab命令:
- crontab file
crontab opt就是将当前目录下的opt文件导入当前用户的crontab配置文件中. - crontab -l
查看当前用户的crontab配置文件内容. - crontab -e
编辑当前用户的crontab配置文件内容. - crontab -r
删除当前用户的crontab配置文件
查看crontab服务的状态:
- service crond status 查看crontab服务状态
- service crond start 启动crontab服务
- service crond stop 关闭crontab服务
- service crond restart 重启crontab服务
- service crond reload 重载crontab服务配置
或者systemctl status crond
crontab文件的位置:
- /var/spool/cron/root
所有用户定义的crontab文件都被保存在/var/spool/cron目录中,文件名与用户名保持一致作者。
黑名单&白名单的文件位置:
- 白名单
/etc/cron.allow
将可以使用 crontab 的帐号写入其中,不在这个文件内的不可使用 crontab; - 黑名单
/etc/cron.deny
将不可以使用 crontab 的帐号写入其中,不在这个文件内的可以使用 crontab .
注**:白名单的优先级高于黑名单,但是系统默认保留的是黑名单。
举例:
* * * * * 任务 (分,时,日,月,周)
-
工作日,每10分钟执行一次test.sh脚本:
*/10 * * * 1-5 bash test.sh
-
每晚的20:30和21:30重启apache:
30 20,21 * * * /usr/local/etc/rc.d/lighttpd restart
-
每天 5:00和17:00执行任务
0 5,17 * * * commond
-
每30秒 运行tar命令对/etc/目录进行存档另存,存储位置为/backups/etc-YYYY-MM-DD.tar.gz
-* * * * * sleep 30; /usr/bin/tar /backups/etc-YYYY-MM-DD.tar.gz /etc
-
在某个月的第一个周日执行任务
0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
-
每月1日10:00备份crontab内容
0 10 1 */1 * crontab -l > cron-backup.txt
-
每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 systemctl restart smb