Linux中使用crontab命令

一 簡介

Linux下的任務調度分爲兩類,系統任務調度和用戶任務調度

  • 系統任務調度:系統需要定期執行的任務,比如重啓、日誌清理等,其配置文件是:/etc/crontab

  • 用戶任務調度:某個用戶需要定期執行的任務。用戶可以使用 crontab 命令來配置自己的定時任務。所有用戶配置的定時任務都存放在 /var/spool/cron/ 目錄下,其文件名與用戶名一致。如:root用戶的所有定時任務就保存在 /var/spool/cron/root 文件中

二 crontab文件的含義

所有用戶crontab文件都存放在 /var/spool/cron/ 目錄下,以用戶名命名。其中每一行都代表一項任務,每行的每個字段代表一項配置,它的格式一共分爲六個字段,前五段是時間設置段,第六段是要執行的命令段,格式如下:

minute hour day month week command

  • minute: 表示分鐘,可以是從0到59之間的任何整數

  • hour:表示小時,可以是從0到23之間的任何整數

  • day:表示日期,可以是從1到31之間的任何整數

  • month:表示月份,可以是從1到12之間的任何整數

  • week:表示星期,可以是從0到7之間的任何整數,這裏的0或7代表星期日

  • command:表示需要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件

wKiom1f-447RkpcGAADq2h3iEls774.jpg

在以上各個字段中,還可以使用以下特殊字符:

  • *    代表所有可能的值,例如:如果month字段是星號,則表示在滿足其它字段的約束條件後每月都執行該命令

  • ,     用逗號隔開的值表示一個範圍列表,例如:如果minute字段的值是“1,3,15”,則表示每小時的第1分鐘、第3分鐘和第15分鐘都執行該命令

  • –    可以用整數之間的 – 表示一個整數範圍,例如:如果day字段的值是“2-6”,則表示每月的第2天到底6天都執行該命令

  • /    可以用斜線表示命令的執行頻率,例如:如果minute字段的值是“*/10”,則表示每十分鐘執行一次命令

三 一個定時任務實例

某臺服務器每10分鐘向192.168.1.2進行時間同步:

[root@web01 cron]# vim /var/spool/cron/root

添加以下內容:

0-59/10 * * * * /usr/sbin/ntpdate -s 192.168.1.2

 

從上面的介紹可以知道,這句代碼的意思是:從0到59分這個時間段每10分鐘都執行時間同步命令,其時間同步服務器是192.168.1.2

四 一些其他實例

實例1:每1分鐘執行一次command
命令:
* * * * * command

實例2:每小時的第3和第15分鐘執行
命令:
3,15 * * * * command

實例3:在上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * * command

實例4:每兩天的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 */2 * * command

實例5:每個星期一的上午8點到11點的第3和第15分鐘執行
命令:
3,15 8-11 * * 1 command

實例6:每晚的21:30重啓smb
命令:
30 21 * * * /etc/init.d/smb restart

實例7:每月1、10、22日的4 : 45重啓smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart

實例8:每週六、週日的1 : 10重啓smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart

實例9:每天18 : 00至23 : 00之間每隔30分鐘重啓smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart

實例10:每星期六的晚上11 : 00 pm重啓smb
命令:
0 23 * * 6 /etc/init.d/smb restart

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章