最近遇见一个奇怪的现象,在做某系统的定期备份的时候使用到了非系统自带Rsync命令,但是手动启动没问题,而且又非常期望批量化在多台主机上进行,怎么办呢?Windows Server 2003下面这样执行任务计划没问题,而就Windows Server 2008 R2下面出现意外。
正常情况下我们的任务计划会有反馈数值,通过它可以判断这个任务计划上次是否运行正常。
· 代码 0 或 0x0:操作成功完成。
· 代码 1 或 0x1:调用的函数不正确或调用了未知函数。
· 代码 10 或 0xa:环境不正确。
· 代码 0x8009000f:常规访问被拒绝
Figure 1看到上次运行结果出现非0情况
这种非〇情况表示的是不能被接受的。
通过对这个批处理设置断点,我看到了这样的报错信息。
Figure 2在批处理中加入Pause 进行断点,查看错误信息
很明显,这个rsync不是系统自带的程序和文件,因此无法被系统直接调用,猜测和环境变量有关,仔细寻找Windows Server 2008 R2 下面的任务计划选项,我看到了这个填空的地方。
Figure 3起始于(可选)项
我将这个填写成了该条脚本的所在的目录,再次运行该任务计划,得到返回成功的标记,并且在服务本分服务器端受到相应的备份内容。
这里回顾一下,两个版本操作系统的任务计划的不一样,Windows Server 2003 下面可以选择的内容,项目并不多,不过他默认的情况下会将起始于填写进去,使用的就是所在脚本的上一级目录。
Figure 4 Windows Server 2003 下面的起始于,默认被填写