我一直在寻找一种定期从Cacti Weathermap插件自动下载气象图图像的方法。似乎没有一种简单的方法可以使用Windows在互联网上的任何地方列出这一点,所以我想a)在这里问一下b)发布到目前为止我所管理的内容。
P.S。我在下面的一个答案中发布了我所处的位置。
答案 0 :(得分:3)
http://<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=1448863933
我快速检查了powershell,看看这是否可以下载(它是):
$client = new-object System.Net.WebClient
$client.DownloadFile("http://<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=1448864049", "C:\data\test.png")
预感到,我刷新了页面并复制了几个网址:
<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=1448863989
<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=1448864049
正如我所怀疑的,每次刷新页面时time=
都会发生变化。
在另一次预感之后,我检查了epochconverter.com上的更改数字(1448863989
等),并获得了与我自己匹配的有效系统时间。
我找到了一个powershell命令(Keith Hill对this question的回答)来获取当前的Unix时间
[int64](([datetime]::UtcNow)-(get-date "1/1/1970")).TotalSeconds
并将其添加到powershell下载脚本
中$client = new-object System.Net.WebClient
$time=[int64](([datetime]::UtcNow)-(get-date "1/1/1970")).TotalSeconds
$client.DownloadFile("http://<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=$time", "C:\data\test.png")
这似乎有效 - 每次运行代码时都会更新文件test.png修改后的时间戳,并打开它显示天气图的有效图片。 现在所需要的只是将其放入正确的脚本中并安排它每隔X分钟运行一次并保存到文件夹中。我确信任务计划程序中的powershell脚本调度在其他地方都有所涉及,所以我在此不再重复。
如果有人知道更简单的方法,请告诉我。否则,投票给我的答案 - 我已经搜索了很多,并且在网上找不到任何其他结果,只允许你使用Windows。 Cacti论坛有几个解决方案,但它们要求你在Linux服务器上做一些对我这样的Linux noob很难的东西。