一 簡介

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

參考文章:

  • http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html


PS:上面圖片中的域名是我個人博客的域名,并不是其他網站轉載的,還請管理員不要給我標為“轉載文章”