語法
crontab [ -u user ] file 或 crontab [ -u user ] { -l | -r | -e }
說明:
crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是類似使用者的時程表。
-u user 是指設定指定 user 的時程表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
參數說明:
-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時間格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分鍾,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。
當 f1 為 * 時表示每分鍾都要執行 program,f2 為 * 時表示每小時都要執行程序,其餘類推
當 f1 為 a-b 時表示從第 a 分鍾到第 b 分鍾這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鍾個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鍾要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期幾 (0 - 6) (星期天 為0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一個月中的第幾天 (1 - 31)
| +-------------------- 小時 (0 - 23)
+------------------------- 分鍾 (0 - 59)
常用命令
#安裝 apt-get install cron #啟動 service cron start #重啟 service cron restart #停止 service cron stop #檢查狀態 service cron status #重新載入配置 service cron reload #編輯創建一個定時服務 crontab -e #查看當前用戶的定時任務 crontab -l #查看指定用戶的定時任務 crontab -l -u username #刪除當前用戶的定時任務 crontab -r #開啟crontab日志,打開文件,在文件中找到cron.*,把前面的#去掉 sudo vim /etc/rsyslog.d/50-default.conf #重啟日志生效 sudo service rsyslog restart #日志路徑 vim /var/log/cron.log
測試
#每分鍾向文件中輸入一句話 * * * * * echo "test crontab is work" >> /home/d/testcrontab.txt #每分鍾執行一次shell腳本 * * * * * /bin/sh /home/d/testcrontab.sh #測試腳本 #!/bin/bash echo "test crontab is work" >> /home/d/testcrontab.txt