crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
?rpm -qa cronie? 查询是否安装了定时任务软件,定时任务的软件名为cronie
?rpm -ql cronie? 查看软件包里面的内容
?/etc/init.d/crond status? 查看crond是否运行
每五分钟同步一下系统的时间 ###第1个里程碑-命令 [[email?protected] oldboy]# ntpdate ntp1.aliyun.com 15 Jan 15:25:02 ntpdate[7921]: adjust time server 182.92.12.11 offset -0.007840 sec [[email?protected] oldboy]# /usr/sbin/ntpdate ntp1.aliyun.com 15 Jan 15:25:51 ntpdate[7922]: adjust time server 182.92.12.11 offset 0.003084 sec ###第2个里程碑-写入定时任务 [[email?protected] oldboy]# [[email?protected] oldboy]# crontab -l #sync time by lee at 20171212 */3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com [[email?protected] oldboy]# ###第3个里程碑-检查 #1)看日志 [[email?protected] oldboy]# tail -f /var/log/cron Jan 15 15:30:01 oldboyedu01-nb CROND[7945]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com) Jan 15 15:30:02 oldboyedu01-nb CROND[7955]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com) #2)看结果 [[email?protected] ~]# date -s "1year" Tue Jan 15 15:29:28 CST 2019 [[email?protected] ~]# date Mon Jan 15 15:30:33 CST 2018
You have new mail in /var/spool/mail/root
每天的上午7点到上午11点 每一个小时运行CMD命令 * 07-11 * * * CMD #每分钟运行CMD
00 07-11 * * * CMD #每个小时运行CMD
[[email?protected] oldboy]# #~每分钟把自己的名字 追加到 /oldboy/oldboy.txt ##1.命令 [[email?protected] oldboy]# echo oldboy >>/oldboy/oldboy.txt [[email?protected] oldboy]# tail /oldboy/oldboy.txt oldboy ##2.定时任务 [[email?protected] oldboy]# crontab -l [[email?protected] oldboy]# crontab -l|tail -2 #print name to file by lee at 20171212 * * * * * echo oldboy >>/oldboy/oldboy.txt #3.检查 ##1)日志
tail -f /var/log/cron Jan 15 15:49:01 oldboyedu01-nb CROND[8054]: (root) CMD (echo oldboy >>/oldboy/oldboy.txt)
##2)结果 [[email?protected] ~]# tail -f /oldboy/oldboy.txt oldboy
0 07-11 * * *
oldboy
每分钟显示当前系统的时间(年-月-日)追加到/tmp/time.log中 ##1.命令 [[email?protected] oldboy]# date +%F 2018-01-15 ##2.脚本 [[email?protected] oldboy]# mkdir -p /server/scripts [[email?protected] oldboy]# cat /server/scripts/date.sh date +%F [[email?protected] oldboy]# sh /server/scripts/date.sh 2018-01-15 [[email?protected] oldboy]# sh /server/scripts/date.sh >>/tmp/date.log [[email?protected] oldboy]# cat /tmp/date.log 2018-01-15 ##3.脚本写入定时任务 [[email?protected] oldboy]# crontab -e #print date to file by lee at 20171212 * * * * * /bin/sh /server/scripts/date.sh >>/tmp/date.log ##4.检查 [[email?protected] oldboy]# tail -f /var/log/cron Jan 15 16:24:01 oldboyedu01-nb CROND[8330]: (root) CMD (/bin/sh /server/scripts/date.sh >>/tmp/date.log)
[[email?protected] ~]# tail -f /tmp/date.log 2018-01-15
05.定时任务中-命令或脚本结果(正确及错误)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1
#sync time by lee at 20171212 */3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
#print name to file by lee at 20171212 #* * * * * echo oldboy >>/oldboy/oldboy.txt 2>&1
#print date to file by lee at 20171212 #* * * * * /bin/sh /server/scripts/date.sh >>/tmp/date.log 2>&1 * * * * * date +%F >>/tmp/date.log 2>&1
>/dev/null 2>&1 === >/dev/null 2>/dev/null
故障案例 【企业案例】如果定时任务规则结尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/oldboy 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常。
###定时任务中 命令或脚本的结果 没有定向到空或文件中 #2.邮件软件开启了---------定时任务会不断的给root用户发邮件 #you have new mail in /var/spool/mail/root You have new mail in /var/spool/mail/root
#1.邮件的软件没有开启------大量小文件堆积在/var/spool/postfix/maildrop/ ---inode满了
[[email?protected] oldboy]# /etc/init.d/postfix stop Shutting down postfix: [ OK ] [[email?protected] oldboy]# chkconfig postfix [[email?protected] oldboy]# chkconfig postfix off [[email?protected] oldboy]# chkconfig |grep postfix postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[[email?protected] oldboy]# ll /var/spool/postfix/maildrop/ total 0
#每分钟显示当前系统的时间年-月-日_周 和当前系统的ip地址,追加到/tmp/ip.log中 http://oldboy.blog.51cto.com/2561410/1410555 linux定时任务生产java服务无法执行问题群友案例 http://oldboy.blog.51cto.com/2561410/1541515
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin
定时任务书写流程
1.开始
2.命令行检查
3.编写脚本
4.测试脚本
5.编写crontab
6.测试
7.完成
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|