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

原文地址:https://www.cnblogs.com/wanghaokun/p/8474689.html