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 &
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 的编辑器 >>