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

Cron重启任务与Wget兼容问题:树莓派重启后无法下载Dropbox照片

解决树莓派重启时crontab执行脚本无法下载Dropbox照片的问题

看起来你遇到的情况很典型:手动运行脚本一切正常,但通过@reboot的crontab任务执行时,只有删除旧照片的步骤生效,下载新照片的环节失败了。结合手动运行正常的前提,问题大概率出在crontab的环境限制或者重启时网络未就绪上,下面给你具体的排查和解决方法:

1. 给脚本里的命令加上绝对路径

crontab在执行时使用的PATH环境变量非常有限,默认可能找不到wget或bsdtar这类命令——虽然你手动运行时系统能找到,但crontab的环境不一样。

先通过以下命令获取这两个工具的绝对路径:

which wget
which bsdtar

比如得到/usr/bin/wget和/usr/bin/bsdtar,然后修改refreshPhotos.sh里的下载命令,替换成带绝对路径的版本:

# 获取新照片(替换为你查到的绝对路径)
/usr/bin/wget -qO- https://www.dropbox.com/sh/AAA/BB -P /home/pi/path/to/dir/with/photos/ | /usr/bin/bsdtar -xvf-

2. 等待网络就绪后再执行下载

树莓派重启后,网络接口可能需要几秒甚至几十秒才能完全连接上互联网,而@reboot的crontab任务通常会在系统启动早期就执行,这时候wget根本连不上Dropbox服务器。

你可以在scripts.sh的开头添加一段等待网络就绪的代码:

#!/bin/bash
set -x

# 等待网络能正常访问外部服务器
until ping -c 1 google.com > /dev/null 2>&1; do
    echo "等待网络连接..."
    sleep 5
done

cd /home/pi/path/to/dir/with/photos/
# 后续原有代码...

如果觉得ping判断太严格,也可以简单加个固定延迟,比如sleep 60(等待60秒),给网络足够的启动时间。

3. 查看日志定位具体错误

你已经配置了日志输出到/home/pi/crontab.refresh.log,重启后一定要查看这个日志的内容,它会直接告诉你下载环节失败的原因:

cat /home/pi/crontab.refresh.log

比如如果日志里出现wget: command not found,就对应上面的绝对路径问题;如果出现connection refused或unable to resolve host,就对应网络未就绪的问题。

4. 再次确认脚本的执行权限

虽然手动运行正常,但还是可以再确认下两个脚本都有可执行权限:

chmod +x /home/pi/path/to/dir/with/photos/scripts.sh
chmod +x /home/pi/path/to/dir/with/photos/refreshPhotos.sh

按照上面的步骤调整后,重启树莓派应该就能正常执行下载照片的步骤了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:02:34