您好,登錄后才能下訂單哦!
最近遇見一個(gè)奇怪的現(xiàn)象,在做某系統(tǒng)的定期備份的時(shí)候使用到了非系統(tǒng)自帶Rsync命令,但是手動(dòng)啟動(dòng)沒問題,而且又非常期望批量化在多臺(tái)主機(jī)上進(jìn)行,怎么辦呢?Windows Server 2003下面這樣執(zhí)行任務(wù)計(jì)劃沒問題,而就Windows Server 2008 R2下面出現(xiàn)意外。
正常情況下我們的任務(wù)計(jì)劃會(huì)有反饋數(shù)值,通過它可以判斷這個(gè)任務(wù)計(jì)劃上次是否運(yùn)行正常(詳細(xì)連接:http://support.microsoft.com/kb/267031/)。
· 代碼 0 或 0x0:操作成功完成。
· 代碼 1 或 0x1:調(diào)用的函數(shù)不正確或調(diào)用了未知函數(shù)。
· 代碼 10 或 0xa:環(huán)境不正確。
· 代碼 0x8009000f:常規(guī)訪問被拒絕
Figure 1看到上次運(yùn)行結(jié)果出現(xiàn)非0情況
這種非〇情況表示的是不能被接受的。
通過對(duì)這個(gè)批處理設(shè)置斷點(diǎn),我看到了這樣的報(bào)錯(cuò)信息。
Figure 2在批處理中加入Pause 進(jìn)行斷點(diǎn),查看錯(cuò)誤信息
很明顯,這個(gè)rsync不是系統(tǒng)自帶的程序和文件,因此無法被系統(tǒng)直接調(diào)用,猜測和環(huán)境變量有關(guān),仔細(xì)尋找Windows Server 2008 R2 下面的任務(wù)計(jì)劃選項(xiàng),我看到了這個(gè)填空的地方。
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)目并不多,不過他默認(rèn)的情況下會(huì)將起始于填寫進(jìn)去,使用的就是所在腳本的上一級(jí)目錄。
Figure 4 Windows Server 2003 下面的起始于,默認(rèn)被填寫
因此設(shè)置Windows Server 2008 ,2012這樣的基于Nt6核心的系統(tǒng)的任務(wù)計(jì)劃的時(shí)候建議將起始于進(jìn)行一下設(shè)置。
以下是其它網(wǎng)友提供的方法
第二種解決方法:
1、創(chuàng)建任務(wù)計(jì)劃時(shí),要在常規(guī)選項(xiàng)卡里選中“不管用戶是否登錄都要運(yùn)行”、“使用最高權(quán)限運(yùn)行”、配置選帶有“Windows Server 2008 R2”這三個(gè)選項(xiàng),
2、在操作選項(xiàng)卡里的“起始于(可選)”要填上bat批處理文件所在目錄,windows 2003是在選擇bat批處理文件自動(dòng)帶上的,而2008不會(huì),雖然它提示是可選的,但是不填的話,執(zhí)行會(huì)失敗;
3、所有信息都填寫完整后點(diǎn)確定時(shí)需要輸入運(yùn)行此任務(wù)的用戶帳戶密碼;
第三種解決方法:
下面我貼一個(gè)完整的計(jì)劃任務(wù)圖示:
創(chuàng)建計(jì)劃任務(wù)
定制計(jì)劃任務(wù)執(zhí)行時(shí)間
計(jì)劃任務(wù)操作一(此情況符合單個(gè)可執(zhí)行程序或者腳本不調(diào)用數(shù)據(jù)庫情況下)
計(jì)劃任務(wù)操作二(此情況符合運(yùn)行程序需要調(diào)用目錄數(shù)據(jù)庫情況、PS:這個(gè)通吃吧貌似j
后面默認(rèn)即可
其問題就在于編輯操作的選項(xiàng)里面的起始于(可選)選項(xiàng)。
真正問題找出來覺得很諷刺呢
貼這個(gè)帖子是想給大家一個(gè)出現(xiàn)問題有據(jù)可查的建議。哈哈,自己也能做個(gè)標(biāo)記以防忘記。
第四種解決方法:
今天在Windows Server 2008 里新建了一個(gè)定時(shí)任務(wù),通過定時(shí)任務(wù)執(zhí)行的bat文件中的sql命令
結(jié)果查看定時(shí)任務(wù)的歷史記錄,發(fā)現(xiàn)卡住了
提示已經(jīng)啟動(dòng)定時(shí)任務(wù),但是bat中的操作一直沒有執(zhí)行
剛開始懷疑bat文件中有錯(cuò)誤,換成了最簡單的打開記事本的命令notepad,發(fā)現(xiàn)問題依然存在
后來發(fā)現(xiàn)有一個(gè)很有意思的地方,新建定時(shí)任務(wù)的時(shí)候,有2個(gè)選項(xiàng):創(chuàng)建基本任務(wù)和創(chuàng)建任務(wù)
之前是創(chuàng)建的基本任務(wù),后來換成創(chuàng)建任務(wù)
然后,問題就解決了
第五種解決方法:
新建一個(gè)管理員帳號(hào),然后用新帳號(hào)運(yùn)行就可以了。
第六種方法:其實(shí)就是第二種方法的補(bǔ)充
解決辦法:
如圖:編輯任務(wù) 把批處理文件的起始位置加上如:在d:\aa.bat
那么起始位置就是:d:\ 注:路徑中不能有引號(hào)
下面引用網(wǎng)上的東東:
批處理文件肯定是沒有問題,加入到計(jì)劃任務(wù)中,發(fā)現(xiàn)沒能正常備份,也沒有拷貝到網(wǎng)絡(luò)映射盤。
將bat文件輸出到文件,本想看看log的,結(jié)果居然沒有正常執(zhí)行。
google了一下,發(fā)現(xiàn)很多網(wǎng)友都有類似的問題,但沒人給出答案。
很幸運(yùn)的找到一篇微軟官方論壇上的網(wǎng)友討論的帖子,幾乎全部解決我的問題。
http://social.technet.microsoft.com/Forums/en-US/winservermanager/thread/d47d116e-10b9-44f0-9a30-7406c86c2fbe/ 很精彩的技術(shù)交流。
對(duì)我來說碰到了2個(gè)問題,
1, a.bat 是處理備份數(shù)據(jù)庫,b.bat 內(nèi)容為 a.bat > D:/abc/1.log , 將b.bat 加入的計(jì)劃任務(wù)中,目的是想調(diào)試計(jì)劃任務(wù)是否成功。(手動(dòng)單獨(dú)執(zhí)行,每次都成功的)結(jié)果,是1.log不輸出,計(jì)劃任務(wù)中返回2; www.jb51.net
2,a.bat 中有把備份好的數(shù)據(jù)拷貝到網(wǎng)絡(luò)映射盤,比如Z盤,計(jì)劃任務(wù)每次都不執(zhí)行,手動(dòng)運(yùn)行該腳本也是好的。
按照上面論壇給的提示:
2) Make sure that the task is set to "start in" the folder that contains the batch file: open the task properties, click on the "actions" tab, click on the action and then the "edit" button at the bottom. In the "Edit Action" Window there is a field for "start in (optional)" that you set to the path to the batch file.
在“操作”->"編輯操作"->“起始于(可選)" 中一定要填入該批處理的路徑。 這一招解決了第一個(gè)問題。
NET USE W: /DELETE
NET USE W: //myserver/myfolder /PERSISTENT:YES
這個(gè)是解決第二個(gè)問題的關(guān)鍵,在執(zhí)行拷貝,或者建立新文件夾之前,先要進(jìn)行如上兩行命令。 細(xì)節(jié):確保在我的電腦界面通過菜單操作的網(wǎng)絡(luò)映射盤式斷開的;Windows server 2008 用戶管理頁面有個(gè)網(wǎng)絡(luò)密碼管理,如果填寫了,net use w: ... 這行命令就不需要輸入密碼和用戶名。
這一招解決第二個(gè)問題。
補(bǔ)充一點(diǎn):批處理文件中和 ”起始于(可選)“中的路徑都不要使用 雙引號(hào)""
第七種方法:
使用windows server 2008 R2 的任務(wù)計(jì)劃程序需要啟動(dòng)服務(wù) Task Scheduler 服務(wù),
windows server 2008 R2 默認(rèn)狀態(tài)下Task Scheduler 服務(wù)是禁止的并且不可切換啟動(dòng)類型,
解決方法:修改注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule 下的start項(xiàng)數(shù)值為2
修改后重啟服務(wù)器,任務(wù)計(jì)劃程序就可添加使用。
第八種方法:
網(wǎng)絡(luò)環(huán)境:windows2003+windows2008.
描述:在win2003內(nèi)使用映射驅(qū)動(dòng)器Z:映射win2008的一個(gè)目錄,
在win2003中創(chuàng)建bat 文件copy Z:中的文件,并做任務(wù)計(jì)劃bat定時(shí)執(zhí)行.
命令行直接執(zhí)行bat沒有問題,執(zhí)行任務(wù)計(jì)劃失敗.
最終的解決方法是參考下面的文章,在bat文件中添加:
NET USE Z: \\XXX.XXX.XXX.XXX\D$\XXXX "Password" /User:"Administrator"
----
另:win7下映射驅(qū)動(dòng)器Z:,添加任務(wù)計(jì)劃執(zhí)行bat文件 Copy Z:\...沒問題,
不存在需要手工添加命令net use的bug.
重啟Win7后,任務(wù)計(jì)劃消失,但其他程序創(chuàng)建的任務(wù)計(jì)劃存在,
最后通過排除法檢查發(fā)現(xiàn)是由于360軟件作怪!需要把bat 文件和job文件同時(shí)都加入白名單.
任務(wù)計(jì)劃無法正常運(yùn)行批處理文件的幾種解決方法
Windows 任務(wù)計(jì)劃與 BAT 批處理文件都是我們經(jīng)常使用的工具,一個(gè)可以幫助我們定期執(zhí)行計(jì)劃的任務(wù)、
NET USE Z:\\XXX.XXX.XXX.XXX\D$ "Password" /User:"Administrator"
將批處理正常訪問映射地址的先決命令寫在原批處理文件內(nèi)容的前面,最終這個(gè)批處理文件就可以通過任務(wù)
計(jì)劃方式正常運(yùn)行了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。