You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Crontab -e 配置的定时任务未执行问题求助

解决crontab定时任务不执行的思路

问题描述

我通过sudo crontab -e配置了定时任务,但所有任务均未按计划执行。我尝试过带sudo和不带sudo的配置(后者应为正确方式,因以root身份运行),手动执行sudo命令时全部可正常运行。配置内容如下:

# create SD backup every Wed at 1am:
0 1 * * 3 sudo sh /home/pi/bkup_rpimage/bkup_rpimage.sh start -c /media/pi/RaspiSDBack/rpi_$(date +%Y-%m-%d).img
# copy SD backup to NAS every 15th at 4-30 am:
30 4 15 * * sudo cp -n -r /media/pi/RaspiSDBack/* /home/pi/QNAP/PI_Backup/
# daily reboot at 4 am:
0 4 * * * sudo /sbin/shutdown -r +5
  • 移除命令中的sudo:你用sudo crontab -e编辑的是root用户的定时任务,任务本身已经以root权限运行,无需额外添加sudo,多余的sudo可能引发环境变量异常。修改后的任务示例:

    # create SD backup every Wed at 1am:
    0 1 * * 3 sh /home/pi/bkup_rpimage/bkup_rpimage.sh start -c /media/pi/RaspiSDBack/rpi_$(date +%Y-%m-%d).img
    # copy SD backup to NAS every 15th at 4-30 am:
    30 4 15 * * cp -n -r /media/pi/RaspiSDBack/* /home/pi/QNAP/PI_Backup/
    # daily reboot at 4 am:
    0 4 * * * /sbin/shutdown -r +5
    
  • 转义date命令中的%符号:crontab里%是特殊字符(代表换行),必须用反斜杠转义\%,否则$(date +%Y-%m-%d)无法正确解析。修改备份文件名部分:

    0 1 * * 3 sh /home/pi/bkup_rpimage/bkup_rpimage.sh start -c /media/pi/RaspiSDBack/rpi_$(date +\%Y-\%m-\%d).img
    
  • 检查crontab服务状态:运行systemctl status cron确认服务是否正常运行,若未启动,执行systemctl start cron启动,再用systemctl enable cron设置开机自启。

  • 查看crontab执行日志:运行grep CRON /var/log/syslog(树莓派默认用syslog),日志会显示任务是否触发、执行时的错误信息(比如路径不存在、权限问题等)。

  • 统一使用绝对路径:crontab的PATH环境变量比普通用户更受限,建议脚本和命令都用绝对路径(比如sh换成/bin/sh,cp换成/bin/cp),避免出现找不到命令的情况。修改后的备份任务:

    0 1 * * 3 /bin/sh /home/pi/bkup_rpimage/bkup_rpimage.sh start -c /media/pi/RaspiSDBack/rpi_$(date +\%Y-\%m-\%d).img
    
  • 验证挂载点状态:如果/media/pi/RaspiSDBack和/home/pi/QNAP/PI_Backup是挂载点,要确保crontab执行时这些挂载点已正常挂载。可以在脚本开头添加挂载检查,或者把挂载命令提前放到crontab任务中。

内容的提问来源于stack exchange,提问作者Althir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:10:55