定期自动下载Cacti Weathermap

我正在寻找一种方法来定期自动从Cacti Weathermap插件下载weathermap图像。 似乎没有一个简单的方法来做到这一点在互联网上的任何地方使用唯一的Windows,所以我想我会a)问在这里和b)发布我到目前为止pipe理。

PS我已经张贴了我在下面的答案之一。

  1. 在天气图页面上,您可以轻松地右键单击 – 另存为。 这会产生一个名为weathermap-cacti-plugin.png的文件。
  2. 但是,从网页没有这样的文件。 右键单击 – 查看网址给了我: http://<mydomain>/plugins/weathermap/weathermap-cacti-plugin.php?action=viewimage&id=df9c40dcab42d1fd6867&time=1448863933
  3. 我做了一个快速检查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") 
  4. 在预感之后,我刷新了页面并复制了更多的URL:

     <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=改变。

  5. 在另一个预感之后,我检查了1448863989上不断变化的数字( 1448863989等),并获得了与我自己相匹配的有效系统时间。

  6. 我发现了一个powershell命令(Keith Hill在这个问题上的回答)来获得当前的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的东西。