穷人在Windows 7中使用作业调度程序执行远程作业

时间:2014-04-23 23:10:44

标签: windows batch-file scheduled-tasks

好的,我知道我的头衔有点模糊,但让我解释一下我做了什么以及我未能完成我想做的事情。

首先,安全不是我现在关心的问题。一旦我开始工作,我将实现一个身份验证模式来保护我的设置。

我希望我的Windows机器在家中,从云服务器上的Linux服务器(具有非root用户播放ftp / scp服务器角色的VPS)ftp / scp批处理文件,并在完成下载后立即运行它

我在我的vps上设置了一个非特权(读取为非root)帐户。我生成了一个公钥/私钥对。从我的Windows PC,使用密钥对,我可以登录到我的VPS,而无需密码。使用相同的密钥对,我能够将我的VPS文件下载到Windows机器上。

我有一个批处理文件,我计划每隔3分钟使用windows'内部任务调度程序。批处理文件的行为如下:

scp remote-server:/home/user1/job.bat .
job.bat  > outfile.txt
scp outfile.txt user1@remote-server:/home/user1/outfile.txt
echo "rem done" > job.bat
scp job.bat user1@remote-server:/home/user1/job.bat

最后两行是为了防止同一批次无意中运行两次。

当它运行时,如果从远程服务器中提取批处理文件但是无法执行它作为后续行并且批处理文件在没有超出第一行的情况下死亡。

我正在寻找这样的东西的原因有两个。 1)当我可以使用VNC访问我的笔记本电脑时,但有时候,它没有响应,我没有其他方法可以取回控制权但杀死VNC进程并从命令行重新启动; m 2)当我带宽受限时,我想运行一个nircmd命令来截取屏幕截图并通过scp发送给我,以便我可以跟进,在家里发生什么。

有人能说清楚,为什么我处于这种状态,即为什么我的批处理文件在第一行后被卡住了?更重要的是,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试在批处理文件中使用schtask动态创建新的计划任务,然后运行该任务以在此任务结束时单独实现下载的脚本。

看看schtasks / Create /?和schtasks / Run /?。示例应该有所帮助(freecell示例将最接近您想要的,只需删除时间约束选项。)