linux任务计划cron

linux任务计划cron
cat /etc/crontab //任务计划的配置文件
SHELL=/bin/bash //定义shell变量
PATH=/sbin:/bin:/usr/sbin:/usr/bin //环境变量
MAILTO=root //MAILTO发送邮件给谁

#For details see man 4 crontabs

#Example of job definition:
.---------------- minute (0 - 59) //下面的五个****分别表示5个位,第一个位是分钟,范围0-59
#| .------------- hour (0 - 23) //第二个位是小时,范围0-23
#| | .---------- day of month (1 - 31) //第三个位是日期,范围1-31
#| | | .------- month (1 - 12) OR jan,feb,mar,apr ... //第四个位是月份,范围1-12,数字和英文简写
#| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //第五位是星期,0或7都表示周日,也可以写成英文的简写
#| | | | |
#
user-name command to be executed //uesr-name默认root,command to be executed是需要执行的命令
#crontab -e //进入crontab配置文件,使用方法跟vim一样,按i进入编辑模式

实例:
有个任务计划:每一天的凌晨3点都去执行/usr/local/sbin/123.sh脚本,并且把正确和错误的日志都追加到/tmp/123.log文件中,具体命令如下:
0 3 /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
注释:
表示所有的意思,第一个表示每个月的1-31号都执行,第二个表示每年的1-12月都执行,第三个*表示每个星期的每天都执行,格式是:分钟+小时+日+月+星期+具体命令

0 3 1-10 /2 /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
注释:每年双月的1-10号去执行/usr/local/sbin/123.sh脚本并把正确和错误的日志都追加到/tmp/123.log文件中

0 3 1-10 */2 2,5 /bin/bash /usr/local/sbin/123.sh >>/tmp/123.log 2>>/tmp/123.log
注释:2,5表示只要周二和周五去执行
#systemctl start crond //编写好任务计划cron后需要使用命令启动crond服务
#ps -aux |grep cron //检查cron服务有没有启动
linux任务计划cron
解决写好的计划任务不执行的方法:
要么写绝对路径,要么把自己的命令写到/etc/crontab 中的PATH环境变量里面去,但是建议最稳妥的方法是写绝对路径
建议:每写一个任务计划,都要追加正确日志和错误日志,这样可以做到有据可查,执行不执行任务计划查看任务执行日志就可以排错了

[root@linux-01 ~]# crontab -l
no crontab for root
[root@linux-01 ~]# crontab -e
在任务计划中输入下面一行:
1 10 2 /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f //表示查找并删除/tmp/下时间超过100天的文件
no crontab for root - using an empty one
crontab: installing new crontab
[root@linux-01 ~]# crontab -l //使用这个命令可以查看刚添加的任务计划
1 10 2 /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f
linux任务计划cron
crontab文件位置路径/var/spool/cron/ 这个里面会有对应用户的cron,如查看root用户的cron,
#cat /var/spool/cron/root
1 10 2 /usr/bin/find /tmp/ -type f -mtime +100 |xargs rm -f //查看到的结果就是root用户的cron

#crontab -e //编辑任务计划
#crontab -l //列出任务计划
#crontab -r //删除任务计划
#crontab -u root -l //使用-u指定一个用户

猜你喜欢

转载自blog.51cto.com/13669226/2115746