定时任务crontab命令详解
Posted xiaodong0802
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时任务crontab命令详解相关的知识,希望对你有一定的参考价值。
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
rpm -qa cronie 查询是否安装了定时任务软件,定时任务的软件名为cronie
rpm -ql cronie 查看软件包里面的内容
/etc/init.d/crond status 查看crond是否运行
每五分钟同步一下系统的时间
###第1个里程碑-命令
[root@oldboyedu01-nb oldboy]# ntpdate ntp1.aliyun.com
15 Jan 15:25:02 ntpdate[7921]: adjust time server 182.92.12.11 offset -0.007840 sec
[root@oldboyedu01-nb 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个里程碑-写入定时任务
[root@oldboyedu01-nb oldboy]#
[root@oldboyedu01-nb oldboy]# crontab -l
#sync time by lee at 20171212
*/3 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
[root@oldboyedu01-nb oldboy]#
###第3个里程碑-检查
#1)看日志
[root@oldboyedu01-nb 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)看结果
[root@oldboyedu01-nb ~]# date -s "1year"
Tue Jan 15 15:29:28 CST 2019
[root@oldboyedu01-nb ~]# 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
[root@oldboyedu01-nb oldboy]# #~每分钟把自己的名字 追加到 /oldboy/oldboy.txt
##1.命令
[root@oldboyedu01-nb oldboy]# echo oldboy >>/oldboy/oldboy.txt
[root@oldboyedu01-nb oldboy]# tail /oldboy/oldboy.txt
oldboy
##2.定时任务
[root@oldboyedu01-nb oldboy]# crontab -l
[root@oldboyedu01-nb 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)结果
[root@oldboyedu01-nb ~]# tail -f /oldboy/oldboy.txt
oldboy
0 07-11 * * *
oldboy
每分钟显示当前系统的时间(年-月-日)追加到/tmp/time.log中
##1.命令
[root@oldboyedu01-nb oldboy]# date +%F
2018-01-15
##2.脚本
[root@oldboyedu01-nb oldboy]# mkdir -p /server/scripts
[root@oldboyedu01-nb oldboy]# cat /server/scripts/date.sh
date +%F
[root@oldboyedu01-nb oldboy]# sh /server/scripts/date.sh
2018-01-15
[root@oldboyedu01-nb oldboy]# sh /server/scripts/date.sh >>/tmp/date.log
[root@oldboyedu01-nb oldboy]# cat /tmp/date.log
2018-01-15
##3.脚本写入定时任务
[root@oldboyedu01-nb oldboy]# crontab -e
#print date to file by lee at 20171212
* * * * * /bin/sh /server/scripts/date.sh >>/tmp/date.log
##4.检查
[root@oldboyedu01-nb 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)
[root@oldboyedu01-nb ~]# 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满了
[root@oldboyedu01-nb oldboy]# /etc/init.d/postfix stop
Shutting down postfix: [ OK ]
[root@oldboyedu01-nb oldboy]# chkconfig postfix
[root@oldboyedu01-nb oldboy]# chkconfig postfix off
[root@oldboyedu01-nb oldboy]# chkconfig |grep postfix
postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@oldboyedu01-nb 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.完成
以上是关于定时任务crontab命令详解的主要内容,如果未能解决你的问题,请参考以下文章