linux命令之 crontab

定义:
有一些命令或者脚本,人在的时候可以手动执行,但是有一些是需要每个小时或者凌晨某个时间点去执行,这个时候就需要一个类似于闹钟似的程序来按照我们设置的时间来跑我自己的任务----crontab

主要参数:
-e 编辑crontab任务
-l 查看此用户的crontab任务
-r 删除crontab任务,不过我一般不用,直接-e删掉或者注释即可

下面来讲一下如何添加一个crontab任务
执行crontab -e添加一条新的crontab任务,就和 vi 一个文件一样,按 i 后就可以编辑了。
linux命令之 crontab
一开始有五个 * ,分别代表着 天 时 分 月 周,然后我喜欢先执行环境变量,因为以前遇到过不执行环境变量就会失败的问题,最后跟上你想执行的命令或者脚本。

*下面列举一些例子,来更好地理解 的意义: *
(1.)每天凌晨4点执行脚本
0 4
. /profile; sh /home/zhou/test.sh

(2.)每天的6点、10点、22点的25分钟执行脚本
25 6,10,22 * . /profile; sh /home/zhou/test.sh

(3.)每年的7月份,在每周的周3到周5的7点执行脚本
0 7 * 7 3-5 . /profile; sh /home/zhou/test.sh

(4.)每5分钟执行一次脚本
/5 * . /profile;sh /home/zhou/test.sh

注意问题:
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
用户调度:crontab是分用户的,每个人有每个人的定闹钟的习惯,当我们在执行crontab -e的时候其实就是在编写 /var/spool/cron/目录下面的文件,进到这个目录就会发现,他是分用户的,每一个用户单独一个文件,里面存放着自己的 crontab任务。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等,/etc/crontab文件是系统任务调度的配置文件。

我们最常遇到的就是crontab不执行的问题,可以按下面排查:

第一,先看cron服务状态
linux命令之 crontab
第二,看要执行的脚本权限是否能被执行
第三,看脚本路径是不是正确
第四,时差问题,服务器和客户端存在时差,crontab肯定是按照服务器时间执行
第五,以上都不是的话,就需要检查脚本中的变量,是否能被引用到。

猜你喜欢

转载自blog.51cto.com/15013163/2555140