Linux例行性工作排程

2021-09-09 08:44:17 字數 2416 閱讀 5942

什麼是例行性工作排程

每個人或多或少都有一些約會或者是工作,有的工作是例行性的, 例如每年一次的年會、每個月一次的工作報告、每週一次的週會、每天需要的打卡等等; 有的工作則是臨時發生的,例如剛好有高層領導來訪,需要你準備演講器材等等! 用在生活上面,例如每年的愛人的生日、每天的起床時間等等、還有突發性的商場大**(真希望天天有!)等等。            

像上面這些例行性工作,通常你得要記錄在行事曆上面才能避免忘記!不過,由於我們常常在電腦前面的緣故,如果電腦系統能夠主動的通知我們的話,那不就輕鬆多了!這個時候linux的例行性工作排程就可以派上用場了! 我們的linux的可以幫你提醒很多任務,例如:每一天早上 8:00鍾要伺服器連線上音響,並啟動**來喚你起床;而中午 12:00 希望 linux 可以發一封信到你的郵件信箱,提醒你可以去吃午餐了; 另外,在每年的你愛人生日的前一天,先發封信提醒你,以免忘記這麼重要的一天。    

那麼 linux 的例行性工作是如何進行排程的呢?所謂的排程就是將這些工作安排執行的流程之意! 咱們的 linux 排程就是通過 crontab 與 at 這兩個東西!這兩個玩意兒有啥不同?就讓我們來瞧一瞧!

linux 工作排程的種類: at, cron

從上面的說明當中,我們可以很清楚的發現兩種工作排程的方式:

一種是例行性的,就是每隔一定的週期要來辦的事項;

一種是突發性的,就是這次做完以後就沒有的那一種 ( 商場大**...)

那麼在 linux 底下如何達到這兩個功能呢?那就得使用 at 與 crontab 這兩個好東西了!

at :at 是個可以僅執行一次就結束排程的命令,不過必須要有 atd這個服務的支援才行。在某些新版的 distributions 中,atd 可能預設並沒有啟動,那麼 at 這個命令就會失效!

/etc/crontab 來支援。 至於讓 crontab 可以生效的服務則是 crond 這個服務!

底下我們先來談一談 linux 的系統到底在做什麼事情,怎麼有那麼多的工作排程在進行呢?

centos linux 系統上常見的例行性工作

如果你曾經使用過 linux 一陣子了,那麼你大概會發現到 linux 會主動的幫我們進行一些工作! 比方說自動的進行線上更新 (on-line update)、自動的進行 updatedb 更新檔名名資料庫、自動的作登入檔案分析 (所以 root 常常會收到標題為 logwatch 的郵件) 等等。這是由於系統要正常執行的話, 某些在後台的工作必須要定時進行的緣故。基本上 linux 系統常見的例行性任務有:

進行登入檔案的輪替 (log rotate):

linux 會主動的將系統所發生的各種資訊都記錄下來,這就是登入檔案 。 由於系統會一直記錄登入資訊,所以登入檔案將會越來越大!我們知道大型檔案不但佔容量還會造成讀寫效能的困擾, 因此適時的將登入檔案資料挪一挪,讓舊的資料與新的資料分別存放,則比較可以有效的記錄登入資訊。這就是 log rotate 的任務!這也是系統必要的例行任務;

登入檔案分析 logwatch 的任務:

如果系統發生了軟體問題、硬體錯誤,絕大部分的錯誤資訊都會被記錄到登入檔案中, 因此系統管理員員的重要任務之一就是分析登入檔案。但你不可能手動通過 vim 等軟體去檢視登入檔案,因為資料太複雜了! 我們的centos 提供了乙個程式『 logwatch 』來主動分析登入資訊,所以你會發現,你的 root 老是會收到標題為 logwatch 的郵件,那是正常的!你最好也能夠看看該郵件的內容!

建立 locate 的資料庫:

在我們用到 locate 命令時, 我們知道該命令是通過已經存在的檔名資料庫來進行系統上檔名的查詢。我們的檔名資料庫是放到 /var/lib/mlocate/ 中。 問題是,這個資料庫怎麼會自動更新啊?這就是系統的例行性工作所產生的效果了!系統會主動的進行 updatedb !

man page 查詢資料庫的建立:

與 locate 資料庫類似的,可提供快速查詢的 man page db 也是個資料庫,但如果要使用 man page 資料庫時,就得要執行 mandb 才能夠建立好! 而這個 man page 資料庫也是通過系統的例行性工作排程來自動執行的!

rpm 軟體登入檔案的建立:

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

移除快取檔案:

某些軟體在執行中會產生一些快取檔案,但是當這個軟體關閉時,這些快取檔案可能並不會主動的被移除。 有些快取檔案則有時間性,如果超過一段時間後,這個快取檔案就沒有效用了,此時移除這些快取檔案就是一件重要的工作! 否則硬碟容量會被耗光。系統通過例行性工作排程執行名為 tmpwatch 的命令來刪除這些快取檔案!

與網路服務有關的分析行為:

其實你的系統會進行的例行性工作與你安裝的軟體多寡有關,如果你安裝過多的軟體,某些服務功能的軟體都會附上分析工具, 那麼你的系統就會多出一些例行性工作!

linux例行性工作排程

什麼是例行性工作?比如太陽每天從東方公升起,學校的上課鈴總是不厭煩的定時響起,老媽的喊叫聲總在每天的固定時刻叫你起床等。這些都是例行性工作。linux系統也有自己的定時要辦的事情,比如日誌檔案的輪替,whatis資料庫的建立等等。linux例行性工作分一次性的 at 和迴圈執行的 cron 本篇部落...

Linux 例行性工作排程

所謂排程就是將這些工作安排執行的流程 1 linux工作排程的種類 at cron 兩種工作排程方式 1 例行性,每隔一定的週期要辦的事項 2 突發性,一次做完後就不再做的排程 at at是乙個可以處理僅執行一次就結束排程的指令,執行at需要有atd服務的支援 2 centos系統上常見的例行性工作...

例行性工作排程

可以處理僅執行一次就結束排程的指令 使用 1.啟動atd服務並設為開機啟動 systemctl restart atd 重啟 systemctl enable atd 開機啟動 etc at.allow中的賬戶才能使用at etc at.deny中的賬戶不能使用at 如果兩個檔案都不存在只有root...