• crontab定时任务不执行的原因


    查看所有用户下的定时任务:

    for in `cat /etc/passwd | cut -d":" -f1`;do crontab --u $u;done

    docker容器里cron没生效 或 没有日志

    如果没有日志,可能是没有打开rsyslog (centos)

    /etc/init.d/rsyslog start

    CentOS 7:

    1. # systemctl restart rsyslog.service

    CentOS 6:

    1. # service rsyslog restart

    centos7镜像创建的容器里面安装服务后,可能会启动rsyslog 失败

    [root@1a7e1970060a /]# systemctl start sshd
    Failed to get D-Bus connection: Operation not permitted 

    http://dockone.io/question/729

    列举5个原因:

    1 crond服务未启动

    crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它:

    crond

    service crond start

    如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:

    yum -y install crontabs

    2 权限问题

    比如:脚本没有x执行权限,解决方法:

    增加执行权限,或者用bash abc.sh的方法执行

    3 路径问题

    有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:以root身份登录shell后执行一个/root/test.sh,只要执行

    ./test.sh

    就可以了。但是在crontab中,就会找不到这个脚本,比如写完整:

    /root/test.sh

    4 时差问题

    因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。

    5 变量问题

    有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败。

    6. 路径问题

    相对路径会找不到文件,要使用绝对路径。

  • 相关阅读:
    CIA泄露资料分析(黑客工具&技术)—Windows篇
    包学会之浅入浅出Vue.js:结业篇
    包学会之浅入浅出Vue.js:升学篇
    包学会之浅入浅出Vue.js:开学篇
    Manacher算法详解
    CSP-S 2019 游记
    洛谷 P3373 【模板】线段树 2
    AHOI 2009 维护序列
    洛谷 P4017 最大食物链计数
    洛谷 SP14932 LCA
  • 原文地址:https://www.cnblogs.com/549294286/p/9229962.html
Copyright © 2020-2023  润新知