精华内容
下载资源
问答
  • crontab定时任务不执行
    2022-06-30 13:35:42

    由于生产环境权限限制的比较严格.,在定时任务执行的命令都使用 sudo命令.

    如: sudo echo  123 >/home/xx

    但是发现,定时任务并没有执行, crond 服务运行正常,执行的文件权限也没有问题,crontab的日志也没有开启. 一时间无从从查起.

    在定时任务后,加入日志输出,如下:

    * * * * *  sudo echo  123  >> /sdc/x >/sdc/123.log

    定时任务执行后,会把执行结果写入   /sdc/123.log 中.

    结果发现日志中文件有如下内容:

    sudo: sorry, you must have a tty to run sudo

    解决办法:

    编辑 /etc/sudoers
    
      方法 1:
     
        Defaults    requiretty,修改为 #Defaults    requiretty,表示不需要控制终端。
    
      方法2:
    
         Defaults    requiretty,修改为 Defaults:app !requiretty,表示仅 app 用户不需要控制终端。  

    更多相关内容
  • 最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以...
  • 本篇文章主要介绍了Linux中crontab定时任务不执行的原因,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要给大家介绍了关于crontab定时任务不执行的原因分析与解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • crontab定时任务不执行的原因

    千次阅读 2022-06-01 23:56:32
    有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败。

    1 crond服务未启动

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

    crondservice crond start

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

    yum -y install crontabs

    2 权限问题

    比如:脚本没有x执行权限,解决方法:
    增加执行权限,或者用bash abc.sh的方法执行
    也有可能crontab任务所属的用户对某个目录没有写权限,也会失败

    3 路径问题

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

    ./test.sh

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

    /root/test.sh

    4 时差问题

    因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。
    时差这个问题还真是搞人,这个我亲身体验了,现象如下:

    (1) 我设置了一个定时脚本,用date命令观察服务器的时间到了脚本执行的时间点,发现没有执行

    (2) 但是我把脚本设置成每分钟执行一次,就是OK的

    见鬼了,服务器时间是对的啊?莫非是要加个什么时区?于是把脚本的时间减10或者12或者8个小时都尝试了下,发现都不行。
    但是很明显是时间不一致导致的不执行。

    5 变量问题

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

    1. crond服务未启动
    crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。
    我们可以先查看一下是否已经启动了服务:

    service crond status
    1
    如下图所示表示crond是正常在运行的,反之说明没有启动


    如果没有启动
    解决的方法是:

    service crond start
    1
    如果提示crond命令不存在,可能被误删除了,自行百度一下" linux 安装 crontab "

    2. 权限问题
    比如:脚本没有x执行权限,解决方法:
    增加执行权限,或者用bash abc.sh的方法执行
    也有可能crontab任务所属的用户对某个目录没有写权限,也会失败

    3. 时差问题
    因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。
    时差这个问题还真是搞人,这个我亲身体验了,现象如下:
    (1) 我设置了一个定时脚本,用date命令观察服务器的时间到了脚本执行的时间点,发现没有执行
    (2) 但是我把脚本设置成每分钟执行一次,就是OK的
    见鬼了,服务器时间是对的啊?莫非是要加个什么时区?于是把脚本的时间减10或者12或者8个小时都尝试了下,发现都不行。
    但是很明显是时间不一致导致的不执行。
    用如下命令修改服务器时区(改成北京时区):

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    service crond restart
    1
    2
    4. 变量问题
    有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败。或者是自己需要启动的程序出现了异常。

    5. 简单的验证方式
    可以直接在 crontab 中使用一下方式来测试一下crontab是否能生效。

    # 每分钟执行一次,将文本“123”写入到testFile文件中
    */1 * * * * echo 123 >> /home/denglinjie/testFile

    Linux 查看所有定时任务
    crontab 命令选项基本只对用户操作的选项:
    -u 指定一个用户
    -l 列出某个用户的任务计划
    -r 删除某个用户的任务
    -e 编辑某个用户的任务
    所以,要查看所有用户的,只能根据 /etc/passwd 文件中的用户名一一列举了,可以用脚本。

    本章内容以CentOS 6.4   和   CentOS  7.6  两个版本定时重启Tomcat为例。[6和7的命令不同]

    ======CentOS 6.4=========


    步骤:

    一.创建脚本文件,本脚本文件用于停止,重启tomcat运行的java进程,并设置脚本文件权限
    1.新建脚本文件tomcat.sh
    【注意文件创建的路径】

    【查看当前路径的命令:   pwd】

    创建文件命令:

    vi tomcat.sh
    2.粘贴脚本文件文本内容到文件中:
    【注意,标红部分需要自己修改为自己服务器上的对应地址】

    【查看linux服务器上JAVA_HOME命令:  echo $JAVA_HOME 】

    【关键一行:

    ps -ef|grep java | grep catalina | awk '{print $2}
    可以准确定位到当前正在tomcat下启动运行的java进程,而不是安装的java,

    参考地址:【linux】linux下准确查询正在tomcat下运行的java进程。准确获取正在运行的java进程的PID - Angel挤一挤 - 博客园 】

    #!/bin/bash
    . /etc/profile

    export JAVA_HOME=/usr/local/jdk1.7.0_79
    export JRE_HOME=$JAVA_HOME/jre

    tomcatPath="/backup/tomcat7"
    binPath="$tomcatPath/bin"
    echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
    pid=`ps -ef|grep java | grep catalina | awk '{print $2}'`
    if [ -n "$pid" ]; then
    echo "[info][$(date +'%F %H:%M:%S')]正在运行的tomcat进程为:$pid"
    echo "[info][$(date +'%F %H:%M:%S')]tomcat已经启动,准备使用shutdown命令关闭..."
    $binPath"/shutdown.sh"
    sleep 2
    pid=`ps -ef|grep java | grep catalina | awk '{print $2}'`
    if [ -n "$pid" ]; then
    echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭失败,准备kill进程..."
    kill -9 $pid
    echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
    sleep 1
    else
    echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭成功!"
    fi
    else
    echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
    fi
    echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
    $binPath"/startup.sh"
    3.修改脚本文件tomcat.sh 可操作权限
    命令:

    chmod 777 tomcat.sh
    二.修改定时任务配置,添加本脚本到定时任务配置中,启动定时任务
    1.修改定时任务配置
    命令:

    crontab -e
    将上面的脚本文件路径,以及定时任务配置粘贴到配置文件中:

    58 10  * * * /backup/tomcat7/tomcat.sh
    【本配置说明:  每天10:58分   执行脚本文件,脚本文件路径在:/backup/tomcat7/tomcat.sh】

    【关于定时任务的配置说明,请自行查阅】

    【最后要说明的一点:本命令操作与vi操作文本命令一样】

    2.操作定时任务
    关闭定时任务命令:
    service crond stop


    启动定时任务命令:
    service crond start


    重启定时任务命令:
    service crond restart
    查看定时任务列表:
    crontab -l
    查看定时任务执行日志:
    tail -f -n 200 /var/spool/mail/root


    3.查看tomcat下运行的java进程是否已经重启
    查看命令:

    ps -ef|grep java
    可以从下图看到,正在运行的新的java进程是在10:58 启动的【说明java进程重启成功】

    CentOS 6 使用cron定时任务,报错:Redirecting to /bin/systemctl restart crond.service
     可以查询下面的CentOS 7 使用cron定时任务相关操作。

    ========CentOS  7.6=========
     

    一.cron任务的自启动相关命令
    1.检测cron定时服务是否自启用
    systemctl is-enabled crond.service
    结果展示如下:

    enable表示已启用自启动
    disable标识未启用自启动
    2.如果未启用,则开启cron自启用
    systemctl enable crond.service
    3.如果已经启用,想要cron关闭自启动
    systemctl disable crond.service


    附录:
    linux系统自带服务的启动文件和状态

    二.cron服务是否启动相关命令【区别于自启动】
    1.查看cron服务的启动状态
    [只有cron的状态是active  running的,才表示cron服务是启动的]

    systemctl status crond.service
     
    2.启动cron服务[命令没有提示]
    systemctl start crond.service
    3.停止cron服务[命令没有提示]
    systemctl stop crond.service
    4.重启cron服务[命令没有提示]
    systemctl restart crond.service
    5.重新加载cron服务[命令没有提示]
    systemctl reload crond.service


    三.操作定时任务
    1.定时任务的编辑
    crontab -e
    编辑内容和centos6 一样。表示每天7.30  执行 /mnt/apps/tomcat/tomcat.sh 路径下的脚本

    30 07  * * * /mnt/apps/tomcat/tomcat.sh
    如果在上面,已经把定时任务cron启动了,编辑定时任务后,会有提示

    如何设定定时时间详见如下描述:


    示例:

     0 2 * * * /root/restart_cat.sh >> /root/restart_cat.log 每天2点执行/root/restart_cat.sh脚本并把执行日志追加到/root/restart_cat.log文件中
     

    2.查看已编辑的定时任务
    crontab -l


    3.删除已编辑的所有定时任务
    crontab -r


    四.查看定时任务的执行日志
    1.查看cron执行日志
    tail -f -n 200 /var/log/cron


    五.最后总结
    如上述命令,整个cron操作步骤如下

    1>编辑了.sh脚本,并保存,记录.sh文件所在路径【一定确保.sh脚本可用,可以尝试在编辑完成.sh文件后,直接./tomcat.sh  执行脚本文件,查看是否可以正常执行】

    2>查看并设置cron为自启动

    3>查看并启动cron服务,使状态为running

    4>编辑并查看cron服务,注意路径和定时格式,确保cron服务编辑成功

    5>最后在编辑完成cron服务后,重新加载或重启cron服务,确保cron服务状态是running的

    6>最后可以通过查看cron执行日志,确保cron是否执行

    7>如果cron任务不执行,确保linux服务器系统 时间 和时区 是否正常

    六.cron任务不执行,问题排查
    如上,已经确保  第五点中所有 步骤都正确执行了。但是cron定时任务一直没有执行。

    我这里出现的原因,是因为服务器的时区设置不正确。

    正确的时区应该是CST

    如果你的时区是UTC,或者其他,就导致时间和时区不正确。

    我设置的定时任务是17.05执行,结果等到了17.05,定时任务不执行,因为此刻的系统时间是05.05

    解决方法:

    【linux】CentOS 查看系统时间,修改时区 - Angel挤一挤 - 博客园

    crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。

    定时执行shell 脚本
    简单给出执行 shell 脚本的步骤。

    首先是编写一个测试脚本--test.sh

    # 创建脚本
    $ vim test.sh
    # 在脚本中做写入文件操作
    date >> data.txt
    修改脚本的权限,确保脚本有执行的权限

    chmod 777 test.sh
    设置 crontab 定时任务

    # 打开定时任务配置文件
    crontab -e
    # 在配置文件中写入定时任务的操作, 这里就是指定每天12点定时执行脚本,并把执行脚本的日志写入文件 test.log
    0 12 * * * sh test.sh > test.log
    保存退出,也就是 :wq

    如果有错,linux 会在执行的时候发送一份邮件给你

    cat /var/spool/mail/root
    注意:

    crontab 是运行在系统默认环境里,如果运行的脚本是执行 python 代码,即脚本的内容可能是:

    python test.py
    这里的 python 会是系统默认的 python 版本,而如果你是运行在 conda 环境里,那么这里就需要采用当前环境里 python 版本的执行文件的绝对路径,即先用以下命令查找当前 python 版本的执行文件位置:

    $ which python
    # 假设输出的文件位置为:
    /root/anaconda3/py3/bin/python
    这里输出的路径,直接替换脚本里的 python:

    /root/anaconda3/py3/bin/python test.py
    这样才能保证运行不出错,否则可能因为版本问题出错;

    crontab命令详解
    常用命令
    crontab –e     //修改 crontab 文件,如果文件不存在会自动创建。
    crontab –l      //显示 crontab 文件。
    crontab -r      //删除 crontab 文件。
    crontab -ir     //删除 crontab 文件前提醒用户。
     
     
    service crond status     //查看crontab服务状态
    service crond start     //启动服务 
    service crond stop     //关闭服务 
    service crond restart     //重启服务 
    service crond reload     //重新载入配置
    所以如果需要取消某个定时任务,就是可以删除在配置文件中的对应命令,即 crontab -e 打开文件,然后删除对应哪行的命令即可

    基本格式
    *  *  *  *  *  command
    分  时  日  月  周   命令
    第1列表示分钟 00~59 每分钟用*或者 */1表示

    第2列表示小时 00~23(0表示0点)

    第3列表示日期 01~31

    第4列表示月份 01~12

    第5列标识号星期 0~6(0表示星期天)

    第6列要运行的命令

    此外每一列除了数字,还可以有这些符号,其含义如下所示:

    *        代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
    ,        代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
    -        代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
    */n     代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次
    示例
    1、在 凌晨00:10运行

    10 0 * * * sh test.sh
    2、每个工作日23:59都进行备份作业。

    59 23 * * 1,2,3,4,5 sh test.sh   
    或者  
    59 23 * * 1-5 sh test.sh
    3、每分钟运行一次命令

    */1 * * * * sh test.sh
    4、每个月的1号 14:10 运行

    10 14 1 * * sh test.sh
    5、每10分钟定时请求一个地址

    0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php
    注意,一般最好不要同时采用几号和每周几,可能会出现混淆;

    正确、错误日志的输出是否写入到文件方法

    1.不输出任何内容(建议使用方法一)

    */1 * * * * /root/XXXX.sh >/dev/null 2>&1 

    */1 * * * * /root/XXXX.sh &>/dev/null    //&表示任何内容
    2.将正确和错误日志都输出到 /tmp/load.log

    */1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1
    3.只输出正确日志到 /tmp/load.log

    */1 * * * * /root/XXXX.sh > /tmp/load.log

    */1 * * * * /root/XXXX.sh 1> /tmp/load.log    //1可以省略
    4.只输出错误日志到 /tmp/load.log

    */1 * * * * /root/XXXX.sh 2> /tmp/load.log
    部分解释:

    /dev/null 代表空设备文件
    > 代表重定向到哪里
    1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
    2 表示stderr标准错误
    & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
    参考文章:

    Linux 定时执行shell脚本命令之crontab:https://www.cnblogs.com/wenzheshen/p/8432588.html

    linux定时执行sh文件:https://blog.csdn.net/IT_xiaocao/article/details/78206364
    ————————————————
    版权声明:本文为CSDN博主「spearhead_cai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lc013/article/details/103775702

    展开全文
  • crontab定时任务不执行的可能原因

    千次阅读 2020-11-09 10:14:43
    最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以...

    前言

    最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因:

    1 crond服务未启动

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

    ?
    1
    crond

    ?
    1
    service crond start

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

    ?
    1
    yum -y install crontabs

    2 权限问题

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

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

    也有可能crontab任务所属的用户对某个目录没有写权限,也会失败

    3 路径问题

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

    ?
    1
    . /test .sh

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

    ?
    1
    /root/test .sh

    4 时差问题

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

    时差这个问题还真是搞人,这个我亲身体验了,现象如下:

    (1) 我设置了一个定时脚本,用date命令观察服务器的时间到了脚本执行的时间点,发现没有执行

    (2) 但是我把脚本设置成每分钟执行一次,就是OK的

    见鬼了,服务器时间是对的啊?莫非是要加个什么时区?于是把脚本的时间减10或者12或者8个小时都尝试了下,发现都不行。

    但是很明显是时间不一致导致的不执行。

    最后用如下两行解决了问题:

    ?
    1
    2
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    service crond restart

    参考这篇文章: https://www.jb51.net/article/154296.htm

    5 变量问题

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

    验证后,我的定时脚本test.sh不执行不是上述任何一种原因,其实我的脚本就一句话:

    ?
    1
    2
    #!/bin/bash
    echo 123 >> testFile

    我希望通过这种方式来测试 我设置的定时脚本起作用了,于是我设置了该脚本每分钟执行一次,但是死活在脚本所在目录看不到这个文件,我手动执行

    ?
    1
    # sh test.sh

    却能看到在脚本所在目录能看到这个文件

    我怀疑是crontab根本没有执行,于是我在crontab中直接添加了

    ?
    1
    * /1 * * * * echo 123 >> /home/denglinjie/testFile

    testFile文件生成了,说明crontab是执行了的,那看来是我脚本自身存在问题

    最后发现,原来是testFile这里必须写完整的路径,我天真的以为testFile会生成在脚本所在的目录,所以改成了如下形式

    ?
    1
    2
    #!/bin/bash
    echo 123 >> /data/denglinjie/testFile

    然后就可以了。

    其实路径是个非常容易出问题的地方,假设在/home/denglinjie目录下有一个脚本文件test1.sh,然后在该目录下还有一个脚本文件test2.sh

    在test1.sh中执行了test2.sh,而且用的是相对路径,即相对test1.sh所在的路径。

    如果在crontab -e中编辑的时候,执行的方式是

    sh /home/denglinjie/test1.sh,当执行到调用sh test2.sh的时候,系统会认为是从crontab文件所在的目录去找test2.sh,但是其实是找不到的,造成执行失败

    最开始我想的方法是,我要将我写的待执行的脚本文件以及被调用的其他的脚本和crontab文件放到一个地方,这样就可以拉,但是失败了,可能是因为权限问题,我进不去/var/spool/cron目录。

    所以另外一个解决方法就是在执行脚本之前先通过 cd   /home/denglinjie 命令进入到脚本所在目录

    ------------------------------------------------------------------

    最近又发现一种新的引起crontab不执行的原因

    这里我要执行的是python脚本,我python脚本的目录为:

    ?
    1
    /data/denglinjie/work/UpdateModuleSwitch

    一开始我的定时任务是这样写的:

    ?
    1
    0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch ;python update_switch.py

    发现到了时间点居然没有执行,其中update_switch.py的部分内容如下:

    ?
    1
    import pymongo

    就是我的脚本中引入了自己安装的pymongo, 注意,这个pymongo是安装到了指定的python版本上的

    不执行原因:crontab定时任务执行的时候,使用的python不是我的那个python,使用的这个python没有安装pymongo,导致import失败

    解决办法,改成如下形式:

    ?
    1
    0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch ; /data/zhoumi/install_evn/bin/python update_switch.py

    指定运行使用的python,这个python已经安装绑定了pymongo,或者用如下形式:

    ?
    1
    0 * * * * export PATH= /data/zhoumi/install_evn/bin/ :$PATH; cd /data/denglinjie/work/UpdateModuleSwitch ;python update_switch.py

    因为我的这个python是安装在我自己的用户目录下,所以系统找不到这个python,所以只要将我的python也加入到系统PATH环境变量中就可以了

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

                        <div class="art_xg">
                        <b>您可能感兴趣的文章:</b><ul><li><a href="/article/29136.htm" title="如何使用Linux的Crontab定时执行PHP脚本的方法" target="_blank">如何使用Linux的Crontab定时执行PHP脚本的方法</a></li><li><a href="/article/49983.htm" title="linux使用crontab实现PHP执行计划定时任务" target="_blank">linux使用crontab实现PHP执行计划定时任务</a></li><li><a href="/article/117241.htm" title="Centos 7下利用crontab定时执行任务详解" target="_blank">Centos 7下利用crontab定时执行任务详解</a></li><li><a href="/article/136732.htm" title="linux定时任务crontab 实现每秒执行一次的方法" target="_blank">linux定时任务crontab 实现每秒执行一次的方法</a></li><li><a href="/article/111528.htm" title="linux下定时执行任务的方法及crontab 用法说明(收集整理)" target="_blank">linux下定时执行任务的方法及crontab 用法说明(收集整理)</a></li><li><a href="/article/135958.htm" title="Linux中crontab定时任务不执行的原因" target="_blank">Linux中crontab定时任务不执行的原因</a></li><li><a href="/article/117329.htm" title="Ubuntu系统下用Crontab命令定时执行PHP文件详解" target="_blank">Ubuntu系统下用Crontab命令定时执行PHP文件详解</a></li><li><a href="/article/129274.htm" title="Linux定时执行任务at和crontab命令详解" target="_blank">Linux定时执行任务at和crontab命令详解</a></li><li><a href="/article/147352.htm" title="Linux下的crontab定时执行任务命令详解" target="_blank">Linux下的crontab定时执行任务命令详解</a></li><li><a href="/article/154047.htm" title="Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路" target="_blank">Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路</a></li></ul>
                        </div>
    					<div class="lbd_bot clearfix">
    					<a href="https://mp.weixin.qq.com/s/HFvRM6gpaACettv5ffM0tg" target="_blank"><img src="https://files.jb51.net/image/msb800.jpg" alt="java" width="820"></a>
    
    					</div><div id="ewm"><div class="jb51ewm"><div class="fl"><img src="//files.jb51.net/skin/2018/images/jb51ewm.png"></div><div class="fr"><p>微信公众号搜索 “ <span>脚本之家</span> ” ,选择关注</p><p>程序猿的那些事、送书等活动等着你</p></div></div></div><p>原文链接:https://blog.csdn.net/u011734144/article/details/54576469</p>
    				<p class="tip">也许是最全java资料!(文档+项目+资料)<a href="https://mp.weixin.qq.com/s/HFvRM6gpaACettv5ffM0tg" target="_blank">【点击下载】</a> 和努力的人一起学习Java!</p></div>
    
    展开全文
  • crontab定时任务不执行原因详解

    千次阅读 2020-05-12 23:56:48
    如果停止了就无法执行任何定时任务了,解决的方法是打开它: systemctl restart crond 或 service crond start 二.权限问题 比如:脚本没有x执行权限,解决方法:增加执行权限, 或者用bash abc.sh的方法执行 三....

    一.cronb服务未启动

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

    service crond start

    二.权限问题

    比如:脚本没有x执行权限,解决方法:增加执行权限,
    或者用bash abc.sh的方法执行

    三.crontab日志

    cron日志保存在系统目录/var/log/cron
    可查看cron的执行记录
    在这里插入图片描述

    3.1 解决办法

    chmod 666 /dev/null

    展开全文
  • 今天遇到一个系统时间偏量达到阈值,zabbix平台告警时间偏移问题,排查后发现是系统配置在crontab定时任务的定时同步服务器时间的任务一直没有执行成功。 1.问题是这样今天一台应用服务器告时间偏移告警,登录服务器...
  • 手动执行可以,加入crontab不执行
  • 我们按照laravel的官方文档写得定时任务,配置的是 ...> /dev/null 2>&1 在本地我们手动可以执行定时任务,服务器上面我们...查看定时任务执行情况 tail -f /var/log/cron 我们就能看到正在执行的定时...
  • MAC crontab定时任务不执行shell

    千次阅读 2020-12-20 00:26:10
    3、shell执行的环境是否设置 一般需要要shell脚本前面加上如下两行 #!/bin/bash source /etc/profile 4、shell脚本是否有问题 这个把脚本在终端手动执行一遍,看一下能否到达效果 5、目录权限问题 这个问题也是一直...
  • 主要介绍了django-crontab 定时执行任务方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 2 使用crontab设置任务时一定要写全路径: 如: /usr/bin/python3 test.py 而如果写 python3 test.py 或者 进入编辑界面后添加环境变量设置,以及指定的任务: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/...
  • 今天一位朋友问我:老范,我Linux系统的的crontab定时任务不执行?命令如下:* * * * * /usr/bin/curl http://www.test.com/index.php?a=login&m=crontab >> /home/laofandata/cron.log 2>&1解决...
  • crontab定时任务不执行

    千次阅读 2017-11-13 17:03:06
    今天在Liunx系统里面写了一个定时重启tomcat的.sh脚本文件,单独运行这个.sh文件可以正常执行,但是加入到Liunx的定时任务crontab里面发现根本就不执行,于是就逐步排查问题? 1、确认服务器是否开启定时任务计划服务...
  • crontab定时任务不执行 expect

    千次阅读 2018-11-06 15:45:15
    1. 路径要写全路径 2.  .../usr/bin/expect -f ...set filepaths [lindex $argv 0] spawn scp -r root@ip:/usr/local/src/$filepaths /usr/local/src/mogondb_data_back/ ...3.查看crontab 是否启动
  • linux crontab 命令,最小的执行时间是一分钟。这篇文章主要介绍了linux定时任务crontab 实现每秒执行一次的方法,需要的朋友可以参考下
  • 易语言 Crontab 定时任务执行模块 v1.2 支持单位秒 也可做计时器源码。函数列表[td]。函数详情。@vSpear。
  • crontab 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # .—————- minute (0 – 59)  # | .————- hour (0 – 23) # | | .———- day of month (1 – 31) # | |...
  • cron的配置文件称为“crontab”,是“cron table”的简写。这篇文章主要介绍了Linux下的crontab定时执行任务命令详解,需要的朋友可以参考下
  • 可查看当前已设置的任务,忽然某一天起,该定时任务不执行,排查方法可为: service cron status 由上图可知,cron任务不执行的原因为root用户密码过期。 进一步确认用户密码有效期可为: chage -l root 解决...
  • 在手动执行脚本时没问题,定时任务执行时有问题。 建议脚本中使用了如mysqldump、javadb2等命令时,使用绝对路径即带全目录结构的路径 Linux下用crontab执行定时任务不会缺省的从用户profile文件中读取环境变量....
  • Linux中crontab定时任务不生效

    千次阅读 2022-06-23 19:52:49
    crontab 定时任务

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,998
精华内容 19,199
关键字:

crontab定时任务不执行