CentOS例行性工作排程

來源:互聯網
上載者:User

CentOS例行性工作排程

1.例行性排程有兩中方式:

1)每隔一定周期就要來辦的事項,用crontab指令實現

2)突發性的,就是這次做完後,就沒有了用at指令實現,不過這個需要atd服務的支援

2.linux常見的例行性任務有:

1)進行登入檔的輪替:linux會將系統所發生的各種資訊都記錄下來,這就是登入檔,隨著系統的運行這些登入檔會越來越大,導致系統讀寫效能下降,因此就需要將這些資料按時間的新舊分別存放,這就是登入檔的輪替任務

2)登入檔案分析:如果系統發生了軟體問題,硬體錯誤,資源安全問題等,絕大部分的錯誤都會被記錄到登入檔案中,因此系統管理員的重要任務之一就是分析登入檔。但你不可能手動透過vim等軟體去監視登入檔案,因為資料太複雜了,因此系統提供了logwatch這隻程式,來主動分析登入資訊。

3)locate資料庫的建立:存放在/var/lib/mlocate中,系統會主動在規定時間調用updatedb這條指令,更新這個資料庫

3)whatis資料庫的建立

4)RPM軟體登入檔案的建立:RPM是一種軟體管理機制。由於系統可能會常常變更軟體,包括軟體的新安裝,非經常性更新等,都會造成軟體檔案名稱的差異。為了方便未來追蹤,系統也幫我們將檔案名稱做個排序的記錄。有時候系統也會透過排程來幫忙RPM資料庫的重建立置

5)移除暫存檔:軟體運行會產生一些臨時檔案,但軟體關閉後,這些臨時檔案可能還存在,如果超出一定的時間後,這個暫存檔就沒有效用了,此時移除這些暫存檔就是一件重要的工作。否則磁碟會很快被耗光。

6)與網路服務相關的分析行為:如果安裝了www網站服務軟體,那麼linux通常會主動分析該軟體的登入檔案。同時某些憑證與認證的網路資訊是否到期問題,我們的linux系統也會幫我們自行檢查

3.atd的啟動與at的運行方式:

1)啟動方式:/etc/init.d/atd restart(start ,stop)

2)at的運行方式:

a)先找尋/etc/at.allow這個檔案,寫在這個檔案中的使用者才能使用at,沒有在這個檔案中的使用者則不能使用at

b)如果/etc/at.allow不存在,就尋找/etc/at.deny這個檔案,若寫在這個at.deny的使用者則不能使用at,而沒有在這個at.deny檔案中的使用者,就可以使用at這個指令了

c)如果兩個檔案都不存在,那麼只有root可以使用at這個指令

3)通常系統預設所有的使用者都是可信任的,因此系統通常會保留一份空的/etc/at.deny檔案,不過萬一你不希望某些使用者使用at指令,將那個使用者的帳號寫入/etc/at.deny即可,一個帳號一行

4.at [-mldv] TIME;at -c 工作號碼:單一工作排程,參數,

1)at的工作完成後,及時沒有輸出資訊,也要給使用者發郵件,告知使用者該工作已完成

2)-l:atq的別名,列出目前系統上面的所有該使用者的at排程

3)-d:at -d相當於atrm ,可以取消一個在at排程中的工作

4)-v:可以使用較明顯的時間格式列出at排程中的工作列表

5)-c:可以列出後面接的該項工作的實際指令內容。

6)TIME:時間格式,這裡可以定義出設麼時候要進行at這項工作的時間,格式有

HH:MM,在今日的HH:MM時刻進行,若該時刻已超過,則明天的這個點進行此工作

HH:MM YYYY-MM-DD,強制規定在某年某月的某一天的特殊時刻進行該工作

HH:MM[ap|pm] [Month][Date],強制在當前年,指定月日進行

HH:MM[ap|pm]+number[minutes|hours|days|weeks],可以用now指代目前時間,即在某個時刻後的多久執行該操作。

7)當我們使用at時會進入一個atshell的環境來讓使用者下達工作指令,此時,建議你最好使用絕對路徑來下達你的指令,比較穩定,因為指令的下達與PATH變數有關,同時與當時的工作目錄還有關。at在運行時,會跑到當時下達at指令的那個工作目錄去執行指令

8)在at指令中下達echo "Hello"。不會顯示到螢幕上,因為at的執行與終端機環境有關,而與標準輸出或標準錯誤輸出無關,如果想在終端機上看到資訊可以通過echo "Hello" > /dev/tty1這個指令來實現。

9)由於at工作排程的使用上,系統會將該項at工作獨立出你的bash環境中,直接交給系統的atd程式來接管,因此,當你下達了at的工作之後就可以立刻離線了,剩下的工作交給linux管理即可。如果有長時間的網路管理工作時,使用at可以讓你免除網路斷線的困擾。

5.batch:系統有空時才進行背景任務。batch是利用at來進行指令的下達。只是加入了一些控制參數。這個batch會在CPU工作負載小於0.8的時候,才進行工作你所下達的工作任務。負載是指CPU在單位時間所負責的工作數量(進程數),不同於CPU利用率,比如有一隻程式他需要一直使用CPU的運算功能,那麼此時CPU的使用率可能達到100%,但是CPU的工作負載則是趨近於1,如果同時執行兩隻程式,則負載是2

所以CPU的負載反映的是CPU需要在多少個不同工作之間切換。

6.迴圈執行的例行性工作排程:由cron(crond)這個系統服務來控制,同樣可以通過/etc/cron.allow,/etc/cron.allow來進行限制該服務的使用名單。當使用者使用crontab這個指令後,該項記錄會被記錄到/var/spool/cron/裡面去,並且以帳號作為判斷。比如huge執行了crontab這個指令,他的工作會被記錄到/var/spool/cron/huge裡去。但不要直接使用vi直接編輯該檔案,因為可能輸入語法錯誤。會導致無法執行cron。另外,cron執行的每一項工作都會被記錄到/var/log/cron這個登入檔中,所以可以根據這個檔案,來擦看是否有木馬植入。

7.crontab [-u username] [-l|-e|-r]:迴圈執行常式任務,參數

1)-u:只有root才能執行這個任務,亦即幫其他使用者建立/移除crontab工作排程

2)-e:編輯crontab的工作內容

3)-l:查閱crontab的工作內容

4)-r:移除所有crontab的工作內容,若僅移除一項,使用-e比較好。

每項指令都有六個欄位,含義依次為:分鐘(0-59)、小時(0-23)、日期(1-31)、月份(1-12)、周(0-7)、指令。其中0和7都代表周日。

還有一些輔助字元:

a)*:代表任何時刻都接受的意思。

b),:代表分割時段的意思,比如下達3到6點,則是這樣的:0 3,6 * * * command

c)-:代表一段時間範圍,比如8到12點之間的每小時的20分鐘進行一項工作:20 8-12 * * * command

d)/n(斜線):n表示數字,亦即每隔n單位間隔的意思,例如每5分鐘進行一次,則:* /5 * * * * command。

8./etc/crontab:系統設定檔,crontab -e是針對使用者的cron來設計的,如果是系統例行性任務時,只需編輯.etc/crontab這個檔案就可以了,cron這個服務的最低偵測限制是分鐘,所以cron會每分鐘去讀取一次/etc/crontab與/usr/bin/crontab這個執行檔,所以,只要你編輯完/etc/crontab這個檔案,並將它儲存之後,那麼cron的設定就自動會來執行了。

查看該檔案會發現有一個PATH,代表執行檔案搜尋路徑,MAILTO=root:代表若有額外的STDOUT,將以email將資料傳給該指定的使用者。

/etc/crontab這個檔案支援兩種指令下達方式:

1)指令型態,即直接在後面跟指令

2)目錄規劃,使用run-parts指令,將要執行的指令碼都放到這個目錄下面,即可

9.一些注意事項:

1)資源分派不均,包括流量,地區內其他PC的流量偵測,CPU使用率,RAM使用率,線上人數即時偵測。

2)取消不要輸出的項目

3)安全監測,在/var/log/cron線面查看木馬

4)周與日月不可共存

10.anacron:處理非24小時一直啟動的linux系統的crontab的執行,所以anacron並不能指定合適執行某項任務,而是以天為單位或者是在開機後立即進行anacron的動作,他會去偵測停機期間應該進行但是沒有進行的crontab任務,並將該任務執行一遍後,anacron就會自動停止了。

anacron其實是一隻程式,而不是一個服務。

11.anacron [-sfn] [job];anacron -u [job]:參數,

1)開始一連續的執行各項工作(job),會依據時間記錄檔案的資料判斷是否進行

2)-f:強制進行,而不去判斷事件記錄檔案的時間戳記

3)-n:立刻進行未進行的任務,而不延遲等待時間

4)-u:僅更新時間記錄檔案的時間戳記,不進行任何工作

5)job:有/etc/anacrontab定義的各項工作名稱

12.當我們下達anacron指令後,它會運作:

1)由/etc/anacrontab分析到cron.daily這項工作名稱的天數為1天

2)由/var/spool/anacron/cron.daily取出最近一次執行anacron的時間戳記

3)由上個步驟與目前的時間比較,若差異天數為設定的天數以上(包含這一天,/etc/anacrontab的第一個參數)就準備進行該指令

4)若準備進行指令,根據/etc/anacrontab的設定,將延遲設定的分鐘數(/etc/anacrontab的第二個參數)

5)延遲時間過後,開始執行後續指令,亦即,run -parts 後面的指令

6)執行完畢,anacron程式結束

13.chkconfig --list anacron:查看anacron是否開機事主動執行。

本文出自 “虎哥的部落格” 部落格,請務必保留此出處http://7613577.blog.51cto.com/7603577/1598577

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.