我读过很多类似的案例,但我怎么也弄不清楚这个…
我在.sh脚本中运行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
如果我从命令行运行脚本,它工作得绝对很好,但如果它在重启时从cron运行,脚本运行,但line.txt被保存为空文件(0字节)。同样,如果直接从命令行运行,它可以正常工作。
我已经查看了文件权限,绝对路径,我能想到的所有内容,但是我已经盯着这个看了几个小时了。
任何帮助都会很感激。谢谢。
@reboot
在启动过程中太早了。你应该创建一个systemd脚本来等待网络。
sleep 30
或更好:
until ping -c1 domain.com &>/dev/null; do
sleep 5
done