crontab使用方法


一、crontab基本用法

1.1 cron服務

cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。

service crond start    //啟動服務
service crond stop     //關閉服務
service crond restart  //重啟服務
service crond reload   //重新載入配置
service crond status   //查看服務狀態

1.2 Crontab存放路徑

/var/spool/cron/crontabs   #這個目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名。

1.3 基本語法

crontab (選項) (參數)

1.3.1 選項

-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u<用戶名稱>:指定要設定計時器的用戶名稱。

1.3.2 參數

crontab文件(指定包含待執行任務的crontab文件。可以不指定,默認是/var/spool/cron/crontabs/下名字為當前用戶名的文件)

1.4 crontab文件的含義

# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | 	.------------- hour (0 - 23)
# | 	| 	.---------- day of month (1 - 31)
# |	|	| 	.------- month (1 - 12) OR jan,feb,mar,apr ...
# | 	| 	| 	| 	.---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | 	| 	| 	| 	|
# *	*	*	*	* 	command 

其中
minute: 表示分鍾,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
在以上各個字段中,還可以使用以下特殊字符
星號():代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如
/10,如果用在minute字段,表示每十分鍾執行一次。

二、示例

2.1每分鍾執行一次command

* * * * * command

2.2 每小時的第3和第20分鍾執行一次command

3,20 * * * * command

2.3 在凌晨3點到晚上20點的每小時第20分鍾執行一次command

20 3-20 * * * command

2.4 每隔兩天的凌晨3點到晚上20點每小時的第20分鍾執行一次command

20 3-20 */2 * * command

2.5 每周一的凌晨3點到晚上20點每小時的第20分鍾執行一次command

20 3-20 * * 1 command

2.6 每隔一個半小時執行一次command

通過設置兩個定時任務可以實現每一個半小時的定時任務。在設定時兩個任務的開始時間剛好錯開90分鍾,每個任務每3小時執行一次即可。

20 0-23/3 * * * command
50 1-23/3 * * * command
  • 注:兩個任務中command為同一個腳本或命令

三、故障排查

3.1 定時任務設置后保存不了

guoew@ubuntu:/etc/cron.daily$ crontab  -e
crontab: installing new crontab
"/tmp/crontab.FLUGtP/crontab":23: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n) 

仔細查看上面保存會發現在第23行分鍾的格式設置不正確,修改為正確格式即可。

3.2 定時任務設置不生效

定時任務不生效原因可能存在下面三種情況:

  1. 定時任務格式或command本身語法不正確
  2. command 沒有執行權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM