从 cron 调用时脚本中的 wget 不工作

wget in script not working when called from cron

我读过很多类似的案例,但我这辈子都想不通...

我在 .sh 脚本中 运行ning 一个 wget 命令,它在重新启动时从 cron 调用,如下所示:

@reboot /home/user/reboot_script.sh

.sh 脚本以

开头
#!/bin/bash

我已经完成了 chmod +x reboot_script.sh

失败的行是:

两者都

mac=$(</home/user/mac.txt)

wget中的变量可能没有提供内容

/usr/bin/wget "http://my.domain.com/$mac/line.txt" -O /home/user/line.txt 

如果我 运行 来自命令行的脚本,它工作得很好,但是如果它 运行s 从重启时的 cron,脚本 运行s,但是 line.txt 保存为空文件(0 字节)。同样,如果直接从命令行 运行,它工作正常。

我查看了文件权限、绝对路径以及我能想到的所有内容,但我已经盯着它看了好几个小时了。

如有任何帮助,我们将不胜感激。谢谢

@reboot 恕我直言,在启动过程中还为时过早。您应该创建一个 systemd 脚本来等待网络。

作为解决方法,您可以添加一个

sleep 30

或更好:

until ping -c1 domain.com &>/dev/null; do
    sleep 5
done

在你的 wget 之前