从 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 之前
我读过很多类似的案例,但我这辈子都想不通...
我在 .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 之前