歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Linux中crontab-定時任務命令

有些東西很久不用就會忘記,所以為了不至於總是找資料,干脆就做一次深刻的筆記,這樣既能加深記憶,又能深入理解。 linux服務器很久沒接觸了,出了一些新的版本,Ubuntu已經出了11.10了,之前對於Ubuntu的了解只是出於對桌面版的好奇,可以跟win7一樣

  有些東西很久不用就會忘記,所以為了不至於總是找資料,干脆就做一次深刻的筆記,這樣既能加深記憶,又能深入理解。

  linux服務器很久沒接觸了,出了一些新的版本,Ubuntu已經出了11.10了,之前對於Ubuntu的了解只是出於對桌面版的好奇,可以跟win7一樣炫,現在的Ubuntu已正式進入了Liunx愛好者的視線,應用用於後台大型服務器,選擇它的主要原因還是出於對穩定性的考慮。用習慣了Centos,突然轉移到Ubuntu上還是有些不習慣,畢竟Centos與傳統的Redhat沒什麼區別。不過,總歸命令還是一樣的,多用用就熟悉了。

  關於任務定時的命令crontab,在Linux中應用還算常見,這次為了配合開發完成一些輔助功能,以及一些備份更新等腳本,就需要crontab來完成,在windows下也就是一個批處理,linux只是多了一些命令而已。先來看看crontab的介紹:

  crontab命令常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。通常,crontab儲存的指令被守護進程激活, crond常常在後台運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。crontab文件包含送交cron守護進程的一系列作業和指令。每個用戶可以擁有自己的crontab文件;同時,操作系統保存一個針對整個系統的crontab文件,該文件通常存放於/etc或者/etc之下的子目錄中,而這個文件只能由系統管理員來修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔為數個領域,每個領域可以放置單一或多個數值。

  在Ubuntu中,crontab的命令如下:

  -e 表示編輯當前的crontab

  -l 表示列表顯示當前的crontab任務

  -r 表示刪除當前用戶的crontab

  -i 表示刪除crontab時給予提示信息

  注意,user's crontab這個表示是每個用戶都有自己的crontab,所以如果需要全局執行,必須定制root用戶的crontab,非全局的,就根據各個用戶自己的crontab來執行,在執行編輯crontab操作時,我們需要設置編輯工具,否則默認是crontab的編輯,對於習慣vi編輯的用戶,我們需要在用戶目錄下設置.profile配置文件,如root的配置文件.prifile,就如下目錄:

  帶.的文件都是隱藏文件,所以需要ls -a才能列出來,vi .profile在文件中加入如下配置:

  EDITOR=vi; export EDITOR

  表示,當前root用戶以vi作為默認編輯器,此時直接使用crontab -e,可以進行編輯任務列表,如下所示:

  上面以#號開頭的表示是注釋說明的信息,紅色標記的是任務列表。

  對於crontab的任務配置說明;

  分鐘 小時 日 月 星期 命令

  * * * * * *

  這樣就一目了然了,我們紅色標記的表示的意義是每天3點鐘執行腳本run.sh,並將執行日志自動輸出到log.log文件中。

  */1 * * * * root /opt/bin/test-cron.sh //表示每隔一分鐘執行一次腳本

  注:crontab任務是被定制在系統後台運行的cron進程,所以用戶書無法查看到cron的進程狀態的。設置開機啟動cron進程,命令如下:

  chkconfig --add crond,把它加入到系統的服務列表中。

  當然,crontab命令用多了,會越來越喜歡它的,因為它能簡化我們日常的很多工作,特別是數據庫備份、檢測服務器運行狀態等一些經常做的工作,都可以根據你的需求來定制,在合理的時間運行執行合適的工作任務,既不影響服務器的性能,又可以節約平時的工作時間,大大提高功能效率。

Copyright © Linux教程網 All Rights Reserved