【问题描述】
使用Debian10新安装的宝塔面板,设置了计划任务,发现没有自动执行。
检查 /www/server/cron 正常,计划任务存在。
检查 service cron status 正常,计划任务已开启。
检查 crontab -l 异常,内容为空。
【解决方案】
经核验发现计划任务被写入 /var/spool/cron/root
正常可用的情况是写入 /var/spool/cron/crontabs/root
把前者移动到后者位置,即可解决问题。
【逻辑错误】
github.com/aaPanel/BaoTa/blob/b5243579448b6e9fcaa5a1cfabcac1a37c78769c/class/crontab.py
第318-320/406-408行:
u_file = '/var/spool/cron/crontabs/root'
if not os.path.exists (u_file):
file='/var/spool/cron/root'
该问题涉及面板的逻辑错误:
Debian10默认没有/var/spool/cron/crontabs/root这个文件,
脚本判断后写入了错误路径/var/spool/cron/root,
无法被crontab执行。
应将中间行改为:
if not os.path.exists ('/var/spool/cron/crontabs'):
上面exists和(中间有空格,因为发帖总被拦截。
此外安装时的SSL自动续签也没有加入计划任务,
望检查、修复,谢谢!
|
|