文章插图
文章插图
linux系统提供at和crontab两个命令来执行定时任务 , at主要针对一次性的定时任务 , crontab则执行周期性的定时任务 。在linux运维中使用较多的还是cronjob , 当安装完linux系统后 , linux会自动启动crond进程 , 这是周期性任务的守护进 程 , 用于检查是否有需要执行的定时任务 。
crontab命令常用参数:crontab file [-u user] -用指定的文件替代目前的crontab.crontab -[-u user] -用标准输入替代目前的crontab.crontab -l [user] -显示当前存在的crontab任务 .crontab -e [user] -用于编辑创建crontab文件任务 .crontab -r [user] -删除当前用户crontab文件(文件保存路径为/var/spool/cron/username) .crontab -c dir -指定crontab的目录 。创建一个新的crontab文件
在考虑向cron进程提交一个crontab文件之前 , 首先要做的一件事情就是设置环境变量EDITOR 。cron进程根据它来确定使用哪个编辑器编辑crontab文件 。大多数用户都使用vi , 如果你和小编一样也是使用vi , 直接编辑$ HOME目录下的. profile文件 , 在当中加入:
EDITOR=vi; export EDITOR ~ source .bash_profilecrontab命令时间格式设置
crontab任务字段共六个 , 前五个为时间字段分别为:分 时 日 月 周;第六个为执行命令字段 , 可以是单条命令或者脚本文件 。时间字段可以使用特殊字符 , ’*’代表所有可能值 , ’,’代表选定时间段 , ’-‘代表选定时间范围 , ’/’代表时间间隔频率 。
举个例子:
? ~ crontab -l */1 10-14 24,25 * * echo `date` >> /root/date.log 含义为:每个月的24、25号10点到14点每隔一分钟输出一个date日期到/root/date.log文件中 。
? ~ crontab -l30 21 * * * /usr/local/etc/rc.d/lighttpd restart含义为:每晚的21:30重启apache 。
基础的设置和使用我们已经了解了 , 但是当我们创建完成cronjob任务后,却经常发现crontab定时任务不执行 , 着实让人郁闷!没关系 , 往下看~
【crontab 安装 crontab怎么配置】crontab定时任务不执行排查思路
两个重要目录文件
关于crontab任务 , 我们需要知道几个目录文件 。这些文件对于我们分析crontab定时任务不执行的原因非常有用 。
/var/log/cron , 用于记录crontab任务执行日志的文件 , 不论执行成功与否都会被记录 。/var/spool/mail/username , 用于记录crontab任务执行失败日志的文件 , linux系统中每个定时任务执行后 , 系统都会将 失败的任务信息通过电子邮件的形式发送给当前系统用户 。
执行失败排查过程(举例)
我创建一个定时任务每分钟关闭一次iptables任务 , 但是iptables并未被关闭 。
查看日志 tail /var/spool/mail/root , 发现不存在这个service命令目录 :
? ~ which service /usr/sbin/service ? ~ crontab -e */1 * * * * /usr/sbin/service iptables stop , 即可解决这个问题 。这个例子反映了一个普遍存在的现象 , 当我们在当前shell中执行脚本没有任何问题 , 但是一写到cronjob中就会出现各种问题 , 这个是因为cronjob并不会自动加载我们脚本所需的各种环境变量 , 我们需要手动添加到cronjob任务中才能确保cronjob正常运行 。
解决办法修改:
? ~ crontab -l SHELL=/bin/sh PATH=PATH=/sbin:/bin:/usr/sbin:/usr/bin */1 * * * * service iptables stop 对于python脚本或者mongodb脚本无法定时执行都可以采用这种办法解决 。
其他容易忽略导致无法执行cronjob的原因:
定时任务路径问题 , 在cronjob中最好使用绝对路径来定位脚本或者输出文件 。脚本权限问题 , 修改脚本权限 , 通常来说chmod 777即可 。系统时间问题 , 校准系统时间 。crond服务问题 , 确保服务状态正常 , service crond status 。
- 用手机ps怎么把模糊的照片变清晰 手机图片有点模糊怎么用ps处理清晰
- 如何注册公司和品牌商标 品牌商标是怎么注册的
- 办公图片编辑软件 加标题时间 办公图片编辑软件用图片剪错了怎么办
- 鲜虫草花怎么吃
- net framework 3.5安装步骤 .net framework3.5安装
- 新鲜豆腐渣怎么做好吃
- 网速被限制了怎么办? 被限制了网速有什么办法吗
- 云主机怎么建站 我有云服务器如何建站
- 冷冻披萨怎么用烤箱烤
- mac上怎么显示隐藏文件 mac怎样显示隐藏文件夹