最近遇見(jiàn)一個(gè)奇怪的現(xiàn)象,在做某系統(tǒng)的定期備份的時(shí)候使用到了非系統(tǒng)自帶Rsync命令,但是手動(dòng)啟動(dòng)沒(méi)問(wèn)題,而且又非常期望批量化在多臺(tái)主機(jī)上進(jìn)行,怎么辦呢?Windows Server 2003下面這樣執(zhí)行任務(wù)計(jì)劃沒(méi)問(wèn)題,而就Windows Server 2008 R2下面出現(xiàn)意外。
正常情況下我們的任務(wù)計(jì)劃會(huì)有反饋數(shù)值,通過(guò)它可以判斷這個(gè)任務(wù)計(jì)劃上次是否運(yùn)行正常(詳細(xì)連接:http://support.microsoft.com/kb/267031/)。
· 代碼 0 或 0x0:操作成功完成。
· 代碼 1 或 0x1:調(diào)用的函數(shù)不正確或調(diào)用了未知函數(shù)。 如果文件不存在也會(huì)出現(xiàn)這個(gè)錯(cuò)誤
· 代碼 10 或 0xa:環(huán)境不正確。
· 代碼 0x8009000f:常規(guī)訪問(wèn)被拒絕
![](/d/20211018/bf5d031c7ce8ed2d74d52f7c875cba5e.gif)
Figure 1看到上次運(yùn)行結(jié)果出現(xiàn)非0情況
這種非〇情況表示的是不能被接受的。
通過(guò)對(duì)這個(gè)批處理設(shè)置斷點(diǎn),我看到了這樣的報(bào)錯(cuò)信息。
![](/d/20211018/c34b8f93ccf27e165c0654659520817f.gif)
Figure 2在批處理中加入Pause 進(jìn)行斷點(diǎn),查看錯(cuò)誤信息
很明顯,這個(gè)rsync不是系統(tǒng)自帶的程序和文件,因此無(wú)法被系統(tǒng)直接調(diào)用,猜測(cè)和環(huán)境變量有關(guān),仔細(xì)尋找Windows Server 2008 R2 下面的任務(wù)計(jì)劃選項(xiàng),我看到了這個(gè)填空的地方。
![](/d/20211018/eb669068a463d8dac025f9d392738f76.gif)
Figure 3起始于(可選)項(xiàng)
我將這個(gè)填寫成了該條腳本的所在的目錄,再次運(yùn)行該任務(wù)計(jì)劃,得到返回成功的標(biāo)記,并且在服務(wù)本分服務(wù)器端受到相應(yīng)的備份內(nèi)容。
這里回顧一下,兩個(gè)版本操作系統(tǒng)的任務(wù)計(jì)劃的不一樣,Windows Server 2003 下面可以選擇的內(nèi)容,項(xiàng)目并不多,不過(guò)他默認(rèn)的情況下會(huì)將起始于填寫進(jìn)去,使用的就是所在腳本的上一級(jí)目錄。
![](/d/20211018/d85984edd4fd3bf806c3bc0a88684d85.gif)
Figure 4 Windows Server 2003 下面的起始于,默認(rèn)被填寫
因此設(shè)置Windows Server 2008 ,2012這樣的基于Nt6核心的系統(tǒng)的任務(wù)計(jì)劃的時(shí)候建議將起始于進(jìn)行一下設(shè)置。