Crontab 计划 bash 脚本

Crontab 计划 bash 脚本

我想要自动化 speedtest.net 并每 5 分钟测试一次我与特定服务器 ID 36250 的网络连接。

我已经安装了官方 speedtestCLI 并编写了一个名为运行速度测试

#!/bin/bash

date_now=`date "+%H:%M:%S       %d/%m/%y"`
result=/home/zaz/speedtesty/results
speedtest -s 36250 >> result
echo "$date_now" >> result

现在为了自动化操作我使用命令编辑了我的 crontab 文件:sudo crontab-e它看起来像这样:

*/5 * * * * /bin/bash /home/zaz/speedtesty/run_speedtest.sh

结果文件已创建,但只有我的输出结果文件是包含当前日期的行。如果我通过键入 bash run_speedtest.sh 来运行脚本,我会得到输出结果我想要的(速度测试测量 + 日期)

我是 Ubuntu 新手,有人可以帮帮我吗?

答案1

如果通过运行计划任务,脚本运行时的权限(使用不同的用户帐户)与从 shell 运行脚本时不同。因此,它可能会也可能不会找到您的速度测试命令;指定它的完整路径。

此外,由于您创建了一个变量结果在脚本中,您可能希望使用变量,而不是纯文件结果在当前目录中(当通过运行时,这可能是根目录计划任务,并且由于权限问题,在那里写入可能会失败)。请使用>>$result,而不是>> result

最后,我只需使用一个循环sleep 600(睡眠 600 秒)即可,而不必费力地使用 crontab(您迟早可能会忘记),然后您就可以永远进行速度测试。;-)

相关内容