crontab安装及使用
linux下crontab安装
yum -y install crontabs
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
//ubuntu下启动
service cron reload
在CentOS系统中加入开机自动启动:
chkconfig --level 345 crond on
配置使用
vim /etc/crontab
crontab /etc/crontab //系统crontab文件目录
crontab /var/spool/cron/root(用户名) //用户crontab文件目录
/etc/cron.deny //所列用户不允许使用的crontab命令
/etc/cron.allow //所列用户允许使用的crontab命令
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -e //编辑某个用户的cron服务
crontab -r //删除crontab文件
tail -f /var/log/cron //查看crontab执行日志
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
crontab -l>$HOME/mycron (备份)
cp /root/mycron /var/spool/cron/root (恢复)
SHELL 系统使用的shell
PATH 系统执行命令的路径
MAILTO 邮件提醒
HOME 执行命令或脚本时使用的主目录
* 所有的取值范围内的数字
/ 每,频率 eg: /5,每5个单位
- 某个数字到某个数字
, 离散的数字
minute hour day month week
(0-59) (0-23) (1-31) (1-12) (0-6,0周日)
使用实例:
每1分钟执行一次 * * * * *
每小时的第3和第15分钟执行 3,15 * * * *
在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * *
每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * *
每个星期一的上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1
每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart
每一小时重启smb * */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb * 23-7/1 * * * /etc/init.d/smb restart
每月的4号与每周一到周三的11点重启smb 0 11 4 * mon-wed /etc/init.d/smb restart
一月一号的4点重启smb 0 4 1 jan * /etc/init.d/smb restart
每小时执行/etc/cron.hourly目录内的脚本 01 * * * * root run-parts /etc/cron.hourly
说明:run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了
每天早上6点 0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时 0 */2 * * *
晚上11点到早上8点之间每两个小时和早上八点 0 23-7/2,8 * * *
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3
1月1日早上4点 0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。 5,15,25,35,45,55 16,17,18 * * * command
每周一,三,五的下午3:00系统进入维护状态,重新启动系统。00 15 * * 1,3,5 shutdown -r +5
每小时的10分,40分执行用户目录下的innd/bbslin这个指令: 10,40 * * * * innd/bbslink
每小时的1分执行用户目录下的bin/account这个指令: 1 * * * * bin/account
每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔): 20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。 12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
执行curl请求(notice:\&) 1 18 * * * /usr/bin/curl http://www.zhizhizui.com/admin/crontab.php?act=test\&sign=6f771d5537c3e7f3113cc210d7ff05e9
输出当前时间到指定文件 23 9 * * * /bin/echo `date` > /dev/test3
参考地址:
https://blog.csdn.net/xinyflove/article/details/83178876
https://www.cnblogs.com/binblogs/p/5206789.html
https://www.cnblogs.com/intval/p/5763929.html
https://www.cnblogs.com/longjshz/p/5779215.html