相关文件

 /etc/crontab
 /etc/cron.deny                设置哪个用户有权限运行 cron 任务
 /var/spool/cron/root
 /var/spool/cron/user
 /var/log/cron                只要在这个 log 里面出现的命令就说明 cron 任务执行了,执行失败会向相应的用户发送邮件

 任务不执行及 cron 相关问题

 开机自动运行 cron 的命令“ systemctl enable crond.service ”。

 新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行,使用 systemctl restart crond.service 重启 cron 。

 环境变量

 Crontab任务的执行环境与手动执行时的执行环境不同,编码时,尽量通过全路径名引用文件或调用命令,或者将引用的文件或者命令的路径添加到环境变量中,其默认环境变量如下
 SHELL=/bin/sh
 USER=root
 PATH=/usr/bin:/bin
 PWD=/root
 SHLVL=
 HOME=/root
 LOGNAME=root
 _=/usr/bin/env

 我修改的环境变量如下
 SHELL=/bin/bash
 PATH=/bin:/lib64:/sbin:/usr/bin:/usr/lib64:/usr/sbin:/usr/local/bin:/usr/local/lib64:/usr/local/sbin
 MAILTO=root
 LANG=zh_CN.UTF-
 HOME=/root
 USER=root
 LOGNAME=root
 DISPLAY=:

 需要图形化桌面的程序需要指定桌面环境

 任务是“ firefox ”,不执行,也不发邮件给此用户,而是发给了 root ,邮件报告是“ no display specified ”。
 解决方法是添加环境变量“ DISPLAY=: ”,重启cron任务。
 "export DISPLAY=:0" and then I did a "xhost +" and now its working fine. I also did a "/usr/bin/firefox $myHost". Now its working fine. Thank you        ==============http://askubuntu.com/questions/417111/open-firefox-from-bash-file-error-no-display-specified

 确定用户是否可以创建 cron 任务

 在 /etc/cron.deny 里设置用户权限。

 Crontab任务的输出重定向文件无写权限

 通常情况下,在添加crontab任务之前,都会手动执行一下待添加的crontab任务,此时,通过重定向产生的文件,只执行该任务的用户有写权限,由sudo -u指定的用户并没有写权限。本质原因是sudo –u对重定向符不起作用。如此,在添加crontab任务,以sudo –u中指定的用户身份运行时,由于对重定向文件无写权限,crontab任务会安静的失败

 Crontab 任务配置文件 owner 不是 root

 在添加crontab任务时,如果配置文件owner不是root,任务会失败(志遥以前也提起过),不过这种失败,可以在cron日志中看到如下错误信息:
 (*system*)WRONG FILE OWNER

 Crontab 任务配置文件为单行

 Crontab 任务都是单行,可如果配在配置文件中,任务字符串后没有换行符,这个任务就有可能也会静悄悄地失败。为安全起见,建议多一下按下回车键。

 cron 会忽略点系统的i18n,默认使用posix的来decode,导致awk识别错误。

 cron 配置文件从其他机器复制时没有更新文件的创建时间,这个cron任务的时间属性不变,这个cron任务有可能不执行,需要用 touch 更新下时间“ sudo touch /var/spool/cron/user ”。

 crontab中“%”要转义

 在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`。

 当crontab突然失效时,可以尝试重启 cron 解决问题,或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

 不要乱运行“ crontab -r ”。它从 Crontab 目录( /var/spool/cron )中删除用户的 Crontab 文件,删除了该用户的所有crontab都没了。

 每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/>& 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。

 示例

 # .---------------- minute ( - )
 # |  .------------- hour ( - )
 # |  |  .---------- day of month ( - )
 # |  |  |  .------- month ( - ) OR jan,feb,mar,apr ...
 # |  |  |  |  .---- day of week ( - ) (Sunday= or )  OR
 #sun,mon,tue,wed,thu,fri,sat
 # |  |  |  |  |
 # *  *  *  *  *  command [args]

   * * * SHELL=/bin/bash PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/Wizard/.local/bin:/home/Wizard/bin MAILTO=root command

   * * * /usr/local/etc/rc.d/lighttpd restart    每晚的21:30重启apache

 */ * * * * root hwclock --hctosys            每隔1分钟同步系统时钟和硬件时钟

 * */ * * * /usr/local/etc/rc.d/lighttpd restart    每一小时重启apache

 * -/ * * * /usr/local/etc/rc.d/lighttpd restart    晚上11点到早上7点之间,每隔一小时重启apache

   ,, * * /usr/local/etc/rc.d/lighttpd restart    每月1、、22日的4 : 45重启apache

   * * , /usr/local/etc/rc.d/lighttpd restart    每周六、周日的1 : 10重启apache

 , - * * * /usr/local/etc/rc.d/lighttpd restart    在每天18 : 00至23 : 00之间每隔30分钟重启apache

   * *  /usr/local/etc/rc.d/lighttpd restart        每星期六的11 :  pm重启apache

    * mon-wed /usr/local/etc/rc.d/lighttpd restart    每月的4号与每周一到周三的11点重启apache

    jan * /usr/local/etc/rc.d/lighttpd restart    一月一号的4点重启apache

 参考

 http://askubuntu.com/questions/417111/open-firefox-from-bash-file-error-no-display-specified            图形桌面

cron 任务的更多相关文章

  1. quartz.net 时间表达式----- Cron表达式详解

    序言 Cron表达式:就是用简单的xxoo符号按照一定的规则,就能把各种时间维度表达的淋漓尽致,无所不在其中,然后在用来做任务调度(定时服务)的quart.net中所认知执行,可想而知这是多么的天衣无 ...

  2. 摆脱Spring 定时任务的@Scheduled cron表达式的困扰

    一.背景 最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做了一个全方位的了解和任务,记录下来 ...

  3. cron(CronTrigger)表达式用法

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTr ...

  4. QuartZ Cron表达式

     Cron Expressions cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表.        Seconds        Minutes        Hours     ...

  5. cron表达式

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...

  6. cron表达式详解[转]

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...

  7. Quartz.net配置文件实例及cron表达式详解

    从XML文件创建作业 最新版本的quartz.net支持直接从xml文件创建作业,使用起来很方便.配置文件的格式可以参考下面的例子 <?xml version="1.0" e ...

  8. 初识Quartz(入门案例)+常用的Cron表达式

    1.Quartz架构图 1.实体层 package cn.happy.entity; //1. public class Plan { //时间 private String date; //任务 p ...

  9. Quartz Cron表达式 在线生成器

    Cron Expressions——Cron 表达式 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是你需要考虑你月的天数) 月(0~11) 天(星期)(1~ ...

随机推荐

  1. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息

    ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ...

  2. Masonry tableviewCell布局(转)

    转载自:http://www.henishuo.com/masonry-tableviewcell-layout/ 前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自 ...

  3. Socket编程实践(3) 多连接服务器实现与简单P2P聊天程序例程

    SO_REUSEADDR选项 在上一篇文章的最后我们贴出了一个简单的C/S通信的例程.在该例程序中,使用"Ctrl+c"结束通信后,服务器是无法立即重启的,如果尝试重启服务器,将被 ...

  4. DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞

    DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞 1.漏洞利用 由于tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量 ...

  5. bzoj 1070 [SCOI2007]修车

    最小费用最大流. 将每个技术人员拆成车数个点,技术人员i的第j个点代表技术人员i修的倒数第j辆车. 源点向所有技术人员点连一条容量为1费用为0的边. 所有技术人员点向所有车点连边:技术人员i的第j个点 ...

  6. django 关于html、css、js 目录位置

    项目目录: project/ ---------------init.py ---------------views.py ---------------settings.py ----------- ...

  7. Neural Network Toolbox使用笔记1:数据拟合

    http://blog.csdn.net/ljp1919/article/details/42556261 Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程 ...

  8. JS 小数的常用处理方法

    1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.f ...

  9. JMeter 分布式部署

    Jmeter 是java 应用,对于CPU和内存的消耗比较大,使用单台机器模拟以千计的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误. 为了让jmeter工具提供更大的负载能力,jmeter短 ...

  10. Clang: Undefined symbols, but it is there using nm.

    https://stackoverflow.com/questions/36662920/xcode-clang-link-build-dynamic-framework-or-dylib-not-e ...