有些東西很久不用就會忘記,所以為了不至于總是找資料,干脆就做一次深刻的筆記,這樣既能加深記憶,又能深入理解。
linux服務(wù)器很久沒接觸了,出了一些新的版本,Ubuntu已經(jīng)出了11.10了,之前對于Ubuntu的了解只是出于對桌面版的好奇,可以跟win7一樣炫,現(xiàn)在的Ubuntu已正式進入了Liunx愛好者的視線,應(yīng)用用于后臺大型服務(wù)器,選擇它的主要原因還是出于對穩(wěn)定性的考慮。用習慣了Centos,突然轉(zhuǎn)移到Ubuntu上還是有些不習慣,畢竟Centos與傳統(tǒng)的Redhat沒什么區(qū)別。不過,總歸命令還是一樣的,多用用就熟悉了。
關(guān)于任務(wù)定時的命令crontab,在Linux中應(yīng)用還算常見,這次為了配合開發(fā)完成一些輔助功能,以及一些備份更新等腳本,就需要crontab來完成,在windows下也就是一個批處理,linux只是多了一些命令而已。先來看看crontab的介紹:
crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標準輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。通常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預(yù)定的作業(yè)需要執(zhí)行。這類作業(yè)一般稱為cron jobs。crontab文件包含送交cron守護進程的一系列作業(yè)和指令。每個用戶可以擁有自己的crontab文件;同時,操作系統(tǒng)保存一個針對整個系統(tǒng)的crontab文件,該文件通常存放于/etc或者/etc之下的子目錄中,而這個文件只能由系統(tǒng)管理員來修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔為數(shù)個領(lǐng)域,每個領(lǐng)域可以放置單一或多個數(shù)值。
在Ubuntu中,crontab的命令如下:

-e 表示編輯當前的crontab
-l 表示列表顯示當前的crontab任務(wù)
-r 表示刪除當前用戶的crontab
-i 表示刪除crontab時給予提示信息
注意,user's crontab這個表示是每個用戶都有自己的crontab,所以如果需要全局執(zhí)行,必須定制root用戶的crontab,非全局的,就根據(jù)各個用戶自己的crontab來執(zhí)行,在執(zhí)行編輯crontab操作時,我們需要設(shè)置編輯工具,否則默認是crontab的編輯,對于習慣vi編輯的用戶,我們需要在用戶目錄下設(shè)置.profile配置文件,如root的配置文件.prifile,就如下目錄:

帶.的文件都是隱藏文件,所以需要ls -a才能列出來,vi .profile在文件中加入如下配置:
EDITOR=vi; export EDITOR
表示,當前root用戶以vi作為默認編輯器,此時直接使用crontab -e,可以進行編輯任務(wù)列表,如下所示:

上面以#號開頭的表示是注釋說明的信息,紅色標記的是任務(wù)列表。
對于crontab的任務(wù)配置說明;
分鐘 小時 日 月 星期 命令
* * * * * *
這樣就一目了然了,我們紅色標記的表示的意義是每天3點鐘執(zhí)行腳本run.sh,并將執(zhí)行日志自動輸出到log.log文件中。
*/1 * * * * root /opt/bin/test-cron.sh //表示每隔一分鐘執(zhí)行一次腳本
注:crontab任務(wù)是被定制在系統(tǒng)后臺運行的cron進程,所以用戶書無法查看到cron的進程狀態(tài)的。設(shè)置開機啟動cron進程,命令如下:
chkconfig --add crond,把它加入到系統(tǒng)的服務(wù)列表中。
當然,crontab命令用多了,會越來越喜歡它的,因為它能簡化我們?nèi)粘5暮芏?a target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; ">工作,特別是數(shù)據(jù)庫備份、檢測服務(wù)器運行狀態(tài)等一些經(jīng)常做的工作,都可以根據(jù)你的需求來定制,在合理的時間運行執(zhí)行合適的工作任務(wù),既不影響服務(wù)器的性能,又可以節(jié)約平時的工作時間,大大提高功能效率。