歡迎您光臨本站 註冊首頁

技巧;如何讓Linux操作系統聽你的調度

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

在Linux系統管理時,有許多任務需要周期性的操作.如需要每天晚上十二點備份Oracle資料庫系統的數據;需要定期備份部署在Linux系統上的郵箱等等.其實不僅僅是在Linux伺服器上需要做這些定期操作,即使在一些客戶端上也不開系統的任務調度功能.如郵箱客戶端會定期檢查遠程郵件伺服器的信件等等.

  可見任務調度在Linux操作系統中是一項很重要的功能.筆者今天這篇文章就跟大家說說如何才能夠讓Linux系統聽你的調度.

  在Linux系統下有很多任務調度命令,如at、crond等命令.不過筆者最喜歡的還是crond命令.它是Linux系統用來定期執行某個應用程序的命令,是Linux系統的自帶命令.默認情況下,當安裝完成操作系統之後,便會自動啟用整個任務調度命令.它每分鐘會定期檢查是否需要執行的任務.如果有要執行任務的工作,便會自動執行這項任務.



如果要查看crond命令的幫助說明,可以在Linux終端下輸入man crond命令,如上圖所示.系統就會顯示出這個命令的相關參數.用戶剛開始使用這個命令的時候可能會比較困難.Linux系統跟Windows系統不同.後者會提供圖形化的界面嚮導來幫助管理員建立任務計劃.而在Linux系統中,則Linux系統工程師需要編寫任務調度設置文件來完成這個任務.故要完成一個任務配製文件可能會有一定的難度,只要有一點兒誤差(如一個標點符號)這個配置文件都將不會起作用.還好系統中本身就存在一些任務調度文件,我們可以以這個文件為藍圖,來做好任務調度規劃.

  一、系統任務調度文件賞析.



如上圖中,是系統的一個任務調度文件crontab.從這個文件中,我們可以了解一些編製任務調度文件的基本規則以及相關技巧.如果管理員能夠把這個文件吃透,那麼離任務調度專家也就不遠了.

  1、任務調度計劃文件怎麼取名.crontab是系統的一個任務調度文件.可以看到這個文件的名字是以cron為前綴的.為此,我們一看到這個文件就可以非常直觀的了解到這就是一個任務調度文件.故系統管理員在建立自己的任務調度文件的時候,最好也能夠以這個cron前綴開頭,以提高文件名字的可讀性.另外需要注意的一點就是,在Linux系統下跟其他操作系統有一個很大的不同,計文件名字或者文件加名字都是區分大小寫的.也就是說,cron與Cron是兩個不同的文件.為了防止搞混,在給文件取名的時候,都採用小寫的文件名字.免得後續調用這個文件的時候,出錯.

  2、為調度計劃添加相關的說明.俗話說,好記性不如爛筆頭.也許管理員剛開始記得這個任務調度文件是為什麼建立的.但是,一年兩年之後,或者以後有別人來接替你的工作,就不知道這個文件到底有什麼用.為此,對任務調度文件進行一定的備註說明是必要的.如上圖中,系統任務調度文件就利用#符號,來進行配置.對於這備註,筆者再提一個小建議.在進行備註時,最好採用英文.如果你英文真的很差,那麼不妨採用拼音.也就是說,要盡量避免採用中文來進行備註.如果採用備註,在某些情況下可能會出現亂碼.如通過SSH協議遠程管理Linux伺服器時,中文就很可能無法正常顯示.

3、任務文件需要制定程序運行的基本環境.如上圖所示的系統任務調度文件中,就主要制定了四個基本參數.第一個是指定執行任務調度工作時所使用的shell;第二個是制定這個命令的存放路徑(或者說指定命令搜索的路徑);第三個是指定是否要輸出結果,上面這個例子中是要把結果輸出給root用戶;第三個是指定根目錄.這些任務調度工作的基本環境參數種,筆者認為需要說明的是第一個參數,即執行任務調度工作時所有使用的shell.Shell的功能就好像是一座橋樑,在用戶與操作系統之間進行溝通的一座橋樑,提供基本的操作界面.如此系統管理員就可以為操作系統下達各種指令,在用戶與操作系統之間形成一個互動的環境.各種操作系統都有其默認的shell.shell種類不同,其所支持的命令也就不經相同.為此,管理員就需要了解自己所需要運行的命令是否是當前所採用的shell所支持的.這是調度任務工作能夠自動執行的關鍵.在必要的情況下,系統管理員需要查看一下系統所採用的shell,來判斷某個命令是否在當前的shell下正常工作.管理員如果要查看其登陸系統時默認使用的shell,則可以通過echo命令來查詢.如管理員可以採用echo $shel來判斷.然後根據顯示的結果,在任務調度文件中正確填寫所需要採用的shell.

  4、指定具體需要執行的命令.一步就是指定需要執行哪些調度命令.在這個步驟中,主要是要指定如下幾個方面的內容.一是這些命令用該用什麼帳戶來執行.注意帳戶的許可權不同,其可以執行的命令也是不同的.為此後面的命令必須要保證這個用戶有執行的許可權.二是要執行的命令.上面這個例子中,run-parts命令會執行隨後目錄中的所有執行文件.而通常情況下,系統會從起初設置的目錄中去查找相關的命令.如果在指定的搜索路徑中找不到這個命令的話,那麼這個任務調度就會失敗.三是需要指定具體執行的周期.如每天的12點20分執行或者每月的1日12點執行或者每周執行一次等等.這個設置比較簡單,只要大家根據編寫規則來寫不會有什麼問題.這個步驟中主要要強調的是帳戶的許可權與命令的搜索路徑兩個問題.這是任務調度配置文件中的難點,也是經常容易出錯的地方.管理員需要特別的注意這兩方面的內容.

  二、任務調度計劃文件編寫建議.

  為了保障任務調度計劃能夠順利的執行,那麼就需要千方百計的保證這個計劃文件的準確性.而要做到這一點,對於剛接觸這個任務調度計劃的人來說,可能比較難.為此,筆者提一些小建議,可以幫助大家提高這個任務配置文件的準確性.

  1、任務調度計劃的帳戶與當前帳戶最好一致.也就是說,管理員需要利用某個用戶來執行任務調度工作,則最好以這個用戶登錄系統然後建立調度任務計劃文件.如此做的好處就是可以在建立任務調度文件時,先運行一下相關的命令,看看其是否具有執行這項作業的許可權.這就可以防止許可權不匹配而導致調度任務計劃不能夠執行.

  2、在編寫任務調度計劃之前,最好先運行一下這個命令.由於shell環境、參數等等都會影響這個命令的自動執行.這就好像在資料庫管理中建立視圖一樣,先編寫查詢語句再創建視圖.故在編寫任務調度計劃文件的時候,也最好先執行命令,然後再把命令內容加入到文件中去.

  3、選擇合理的運行時間.系統管理員之採用任務調度計劃,主要有兩個意圖.一是讓系統自動執行某個作業,以節省管理員操作的時間;二是在一個特定的時刻,如午後12點運行某個作業,以錯開伺服器的運行高峰時間.故在製作這個任務調度計劃的時候,為任務調度工作安排一個合適的運行時間就至關重要.


[火星人 ] 技巧;如何讓Linux操作系統聽你的調度已經有170次圍觀

http://coctec.com/docs/linux/show-post-58017.html