crontab詳解

表達式格式

image

命令格式java

crontab [-u user] file
或者
crontab [-u username]     //可選,省略則表示操做當前用戶的crontab
        -e        //編輯crontab定時任務
        -l        //列出crontab裏的內容
        -r        //刪除crontab
  • -u user:用來設定某個用戶的crontab服務;
  • file:file是命令文件的名字,表示將file作爲crontab的任務列表文件並載入crontab。若是在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
  • -e:編輯某個用戶的crontab文件內容。若是不指定用戶,則表示編輯當前用戶的crontab文件。
  • -l:顯示某個用戶的crontab文件內容,若是不指定用戶,則表示顯示當前用戶的crontab文件內容。
  • -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,若是不指定用戶,則默認刪除當前用戶的crontab文件。
  • -i:在刪除用戶的crontab文件時給確認提示。

crontab的命令由時間和命令構成,其時間由分、時、日、月、週五種按順序排列,操做符有:linux

*:任什麼時候間
/:每隔多久
-:連續時間
,:不連續的時間

實例說明shell

每分鐘執行一次命令bash

* * * * * 命令
每小時的第10分鐘和第30分鐘執行

10,30 * * * * 命令
在8點到10點的每分鐘執行

* 8-10 * * * 命令
每個月15號每隔10分鐘執行

*/10 * 15 * * 命令
每週一的六點三十分執行

30 6 * * 1 命令

系統運行的調度程序

/etc/crontab

同時在/etc目錄下還存放了/etc/cron.deny 和 /etc/cron.allow 文件
/etc/cron.deny 表示不能使用crontab 命令的用戶
/etc/cron.allow 表示能使用crontab的用戶。
若是兩個文件同時存在,那麼/etc/cron.allow 優先。
若是兩個文件都不存在,那麼只有root用戶能夠安排做業。

用戶任務文件

/var/apool/cron/用戶服務器

查看日誌

記錄是否執行了某些計劃的腳本less

$ less /var/log/cron

具體執行是否正確以及腳本執行過程當中的一些信息則linux會每次都發郵件到/var/spool/mail下面命令行

$ cd  /var/spool/mail

經過這些就能夠判斷腳本執行正確與否,及執行過程當中是否正確以及一些錯誤的信息,除此以外 cron 還能夠添加郵件通知日誌

#你的命令要在哪運行
SHELL=/bin/bash
#爲這個shell添加環境變量,如你的命令須要java環境
PATH=$PATH:/your_jdk_path
#當運行出錯將郵件發送給誰
MAILTO=user_name或者你的qq郵箱

延伸

經過這些瞭解,咱們能夠作個調度系統,經過腳本設定定時任務。當我有十幾臺甚至上百臺服務器,經過這個系統,能夠極大解放勞動力,便於管理。code

參考

http://www.javashuo.com/article/p-mhgrtmze-gb.html

相關文章
相關標籤/搜索