网站制作学习网Linux→正文:crontab 不执行不生效
字体:

crontab 不执行不生效

Linux 2024/8/14 20:25:51  点击:不统计

%77w%77%2Ef%6F%72p%73%70%2Ec%6E
 在centos 或者ubuntu 中,crontab 是很好的定时执行器,但有很多次遇到crontab 不执行不生效,下面将历史遇到的问题都说一下

 
1. 首先 shell 文件要有 x 执行权限
chmod +x xxx.sh
 
2. (1) 确定 cron 服务启动着
查看crontab 状态命令  (部分系统名称为 cron)
sudo systemctl status crond
 
启动crontab 命令
sudo systemctl start crond
重启 crontab 命令
sudo service crond restart
 
 
(2)其次在ubuntu 系统中,如果是 crontab -e 添加 ,最好将执行器地址加上去,如下
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 16 * * * /opt/xxx.sh
 
(3)如果是crontab -e 编辑,可以通过crontab -l 命令查看是否已经正确添加
 
3. 如果在shell中有执行python, 或者调用其他方法,要么用绝对路径,要么切换到对应文件夹 
以执行python test.py 为例
绝对路径案例
 
#!/bin/bash
python  /opt/test.py
 
如果是相对路径,将shell文件放到 test.py 同级目录下,则要 
 
#!/bin/bash
current_dir=$(dirname "$(realpath "$0")")
# echo "$current_dir"
cd "$current_dir"
python  test.py
 
如果是虚拟环境 同理。
 
4. 如果仍然不生效 通过命令查看一下 crontab 的历史日志
命令如下:
grep CRON /var/log/syslog
根据命令查看是否已经执行shell 

5. 如果仍然不执行 
0 16 * * * /opt/xxx.sh >>/opt/crontab.log & 

6. 如果提示用户问题,可以切换到当前用户执行
0 16 * * * sudo -u [user_name]  /opt/xxx.sh >>/opt/crontab.log & 

 

http://www.forasp.cn/

·上一篇:github ssh config 失效 >>    ·下一篇:修改crontab -e 的编辑器 >>
推荐文章
最新文章