几天前,我向speedtest-cli
请求了一些帮助,现在我需要以下方面的帮助:
我制作了此crontab:
0 * * * * (date +"%A, %d.%m.%Y %X Uhr" >> /home/pi/speedtest/speed.txt; /usr/bin/speedtest-cli --server 3645 --simple >> /home/pi/speedtest/speed.txt; echo "\n" >> /home/pi/speedtest/speed.txt)
10 * * * * (speedtest-cli --server 3645 --share; grep -Po 'Share results: \K.*' >> /home/pi/speedtest/latest.txt)
(请点击此处查看格式是否更好:https://hastebin.com/holugehuvo.js)
我将解释其用途:因此,第一个命令应将我的区域格式的当前日期和时间打印到文本文件中。 speedtest-cli --server 3645 --simple
的输出应附加到同一文件,之后应换行,以便我可以看到下一个输出(一小时后输出)的格式正确。
命令speedtest-cli --server 3645 --simple
的输出将是这样的:
Ping: xx.xx ms
Download: 53.09 Mbit/s
Upload: 7.92 Mbit/s
应该每小时重复一次。
第二个cron应该grep命令返回的http://
地址,并将其打印到一个名为latest.txt的文件中。
speedtest-cli --server 3645 --share
的示例输出如下:
Retrieving speedtest.net configuration...
Testing from Provider (xx.xxx.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Citycom Telekommunikation GmbH (Graz) [xx.xx km]: xx.xxx ms
Testing download speed................................................................................
Download: 52.88 Mbit/s
Testing upload speed....................................................................................................
Upload: 7.62 Mbit/s
Share results: http://www.speedtest.net/result/7799311524.png
我只需要那个http://
地址,因为我想在PHP中阅读该地址并在本地网页上显示此png,这样我就知道我最近的速度测试是什么。
这两个命令应该每小时运行一次,我使用了一些偏移量,以使速度不受第一个命令中进行的其他速度测试的影响。
我需要两个输出,因为我想监视自己的上一速度并使用PHP访问该图像。
我知道这是一个/很长的问题,但是我想向您提供许多详细信息,以便更轻松地理解我想做什么。
谢谢您的帮助。
答案 0 :(得分:0)
这里有几点改进之处:
%
的用法:
您必须对其进行转义并将其写为\%
“第六个”字段(该行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行符或一个
%
字符,都将由/bin/sh
或SHELL
变量中指定的shell执行。 cronfile。除非使用反斜杠(%
进行转义,否则命令中的\
字符将被更改为换行符,并且第一个%
之后的所有数据将作为标准发送给命令输入。来源:
man 5 crontab
复合命令
您可以在单个crontab命令中编写多个命令,
( command1; command2 ) >> /path/to/output
尽管这可行,但必须指出,这将产生一个子外壳,并且有点过大。您可能会考虑不要使用:
{ command1; command2; } >> /path/to/output
或者如果command2
失败时不希望command1
执行,则可以执行以下操作:
command1 && command2 >> /path/to/output
管道的使用:您的第二条命令应使用管道(|
)
speedtest-cli --server 3645 --share | grep -Po 'Share results: \K.*' >> /home/pi/speedtest/latest.txt