系統管理必讀:任務調度工作計劃使用心得

來源:互聯網
上載者:User

無論在Linux作業系統中還是在Windows作業系統中,任務計劃都是一個非常有用的系統管理工具。如可以通過任務計劃,讓作業系統自動監視硬碟使用方式。每天統計一次,如果硬碟的空間少於5%時就自動向系統管理員報告,等等。為此作為一名合格的系統管理員,必須要深入瞭解這個工具的應用。具體來說,以下幾方面內容是筆者要強調的。

一、合理定位任務發送器的輸出結果。

任務發送器預設情況下會輸出兩種類型的結果資訊,分別為啟動並執行結果(如果命令中定義要輸出一定的結果)和錯誤資訊(如沒有正常運行這個任務計劃的錯誤提示)等等。對於這些結果資訊,系統管理員需要明確的是兩個內容,分別為是否需要這些資訊,以及將這些資訊存放到什麼地方。

在Linux作業系統,即可以顯示正常的結果資訊,而不顯示錯誤資訊;也可以兩個都顯示等等。甚至可以什麼資訊都不顯示。具體需要哪些資訊,就需要根據系統管理員的需要來定義了。如只要正確的結果資訊,那可以節省閱讀量,但是可能會忽視一些系統的錯誤資訊。一般情況下,如果Linux作業系統作為伺服器,而這個任務調度又關係到比較重要的任務,如資料備份等等。此時最好需要向系統管理員同時彙報正確的結果資訊(如什麼時候開始比分,曆時多少時間,備份檔案的大小等資訊)以及一些錯誤資訊(包括使用者自訂與系統預設的錯誤資訊)。由於Linux伺服器在企業中不會很多,所以即使加上這些錯誤資訊或者正常的結果資訊,其最終的閱讀量也不會增加多少。而如果在普通的用戶端系統來說,則可以只彙報一些必要的資訊,如任務計劃是否正常完成等等。因為用戶端數量比較多,如果反應比較齊全的資訊時,系統管理員也沒時間看。可能是直接放進垃圾筒。在這種情況下,還不如只顯示系統管理員比較感興趣的內容為好。

系統管理員除了要確定顯示哪些內容之外,還需要確定以什麼樣的方式顯示。如預設情況下,系統會將執行的結果以及錯誤資訊,以郵件的形式發送給要求執行的使用者(如果郵件等資訊設定無誤的話)。但是系統管理員可以改變這種顯示的方式。如系統管理員可能覺得每次收到一封郵件比較麻煩。如企業有100台用戶端(在每台用戶端上通過CRON來對重要檔案進行備份),那麼系統管理員每天就要收到100封郵件。這不就是變為垃圾郵件了嗎?為此不少系統管理員在用戶端上部署了CRON後,會更改相關的配置。如系統管理員可以將結果資訊或者錯誤記錄檔資訊儲存到原生一個檔案中。如只需要加入program >> /home/user/log.txt即可。注意,此時只是把結果資訊儲存到這個檔案中,而不會將錯誤資訊儲存。如果在儲存正常運行結果資訊的同時,還需要儲存錯誤資訊的話,則系統管理員需要在這個命令後面加入2>&1。這個2>&1表示執行結果與錯誤資訊。如果不這麼定義的話,則預設情況下只是儲存執行結果資訊。不過有時候可能系統管理員根本不需要這些資訊(雖然筆者不建議這麼做,但是有些系統管理員還是對自己有盲目的自信),那麼也可以螢幕掉。這個屏蔽的方法,其實筆者在以前的文章中也談到過,就是利用系統中一個特殊的檔案/del/null。當需要過濾一些螢幕上的提示資訊(如正常的資料流或者錯誤資訊),可以將相關的紀錄重新導向到這個檔案中。為了達到這個目的,筆者採用的語句是program >/dev/null 2>&1。執行這個命令後,就是將所有的資訊都重新導向到這個/dev/null檔案。這是系統中的一個空檔案。重新導向到這個檔案中內容都不會儲存。注意,這裡必須加上2>&1這個內容。否則的話,只會屏蔽掉部分的內容,仍然會像系統管理員提示一些資訊。

筆者最後強調一次,雖然系統中可以使用某些手段將crond任務計劃的執行結果資訊或者錯誤資訊屏蔽掉,但是筆者一般不建議這麼做。因為如果沒有這些資訊的話,那麼系統管理員就很難判斷這個任務計劃是否順利執行了。如對於完成資料備份功能的計劃作業,可能需要一一去查詢備份檔案的屬性才能夠判斷備份作業是否正確運行。這顯然增加了維護的難度。所以,在沒有充分必要的情況下,請務必保留執行結果或者錯誤資訊。如果覺得郵件比較麻煩的話,至少可以將這些資訊儲存到原生記錄檔中。方便在需要的時候查看。

二、刪除任務計劃時慎用crontab –r 命令。

當系統管理員不再需要定期執行任務調度中定義的工作時,則可以通過crontab –r命令來進行刪除。如果在使用這個命令的時候需要謹慎。因為可能在同一台作業系統中設定了不同的任務調度計劃。如一個計劃用來備份資料庫,另外一個計劃用來監測郵件系統所佔用的硬碟空間。此時如果系統管理員不需要監測郵件空間的那個任務計劃(可能將郵件伺服器移植到另外的伺服器上),需要將這個任務計劃刪除。此時如果採用crontab –r命令來刪除不需要的任務計劃時,系統管理員就要後悔了。因為這個命令是刪除所有的任務調度工作,即會將以上的Database Backup的任務計劃也刪除。但是系統管理員的本意是不想刪除這個計劃的。

為此在使用這個命令刪除任務調度工作時,最好先使用crontal –l命令來查詢當前系統中有哪些任務調度工作。並判斷是否要把這些任務調度工作全部刪除。如果需要全部刪除或者只有要刪除的那一個任務調度作業時,可以使用如上這個命令。否則的話,就不能夠使用這個刪除命令。如果需要刪除單個的任務計劃時,最好通過修改cron設定檔來完成。每一個任務調度工作計劃都會在設定檔中佔用一條記錄。系統管理員之需要將對應的紀錄刪除或者注釋掉即可(對於暫時不用的任務調度工作筆者建議注釋掉,而不是刪除)。注釋掉的內容跟刪除具有同等的效果,因為系統在執行時不會去考慮注釋的內容。

另外系統管理員root這個特權使用者可以用來管理所有使用者的任務調度工作。如現在系統管理員是利用mail這個賬戶來管理郵件伺服器,並利用這個賬戶建立了上面這個任務調度作業。此時系統管理員可以使用crontab –l –u mail 來查詢mail使用者所建立的所有任務調度工作。同理,也可以通過命令crontab –r –u mail來刪除所有這個使用者建立的任務調度作業。如果現在需要把這個mail賬戶登出掉,那麼可以使用這個刪除命令來一次性將這個賬戶對應的任務調度計劃刪除。如果mail、oracle等賬戶的持有人與root實際為同一人,即系統管理員同時擔任多個角色的話,那麼筆者建議採用root賬戶來統一管理這個任務調度計劃。如果不是如此,即企業中有資料庫管理員等員工來各自完成相關的維護工作,那麼最好是各個使用者採用自己的賬戶來維護。因為除非是系統管理員(特權賬戶),否則的話各個賬戶只能夠維護自己的任務調度計劃。這就可以給各個使用者一個相對獨立的環境,避免相互之間的幹擾。

最後需要說明的是,在任務計劃中最好不要寫太過於複雜的語句。如果要實現比較複雜的功能,如將檔案備份完成後需要統計備份檔案的大小、備份檔案的目錄等資訊,最好將它們寫在一個指令檔中。然後讓任務調度計劃運行這個指令檔。因為在任務調度計劃簡短的代碼中,很難執行複雜的功能。而且以後如需要調整相關功能的話,也只需要調整這個指令檔即可。而不需要去更改原先的任務調度的代碼。顯然這有利於提高代碼的靈活性。

  1. Linux系統下配置Netware伺服器方法
  2. 嵌入式裝置上的 Linux 系統開發
  3. 深度介紹Linux核心是如何工作的(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.