❶ linux中定時任務crontab編寫
使用crontab可以在指定時間執行Linux命令或腳本,如系統管理員安排備份任務。添加crontab作業的命令是:
# crontab –e
示例:0 5 * * * /root/bin/backup.sh,表示每天早上5點運行 /root/bin/backup.sh。
crontab各項功能描述如下:
格式:{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 0-59
hour: 0-23
day-of-month: 0-31
month: 1-12
day-of-week: 0-7, 星期日為0或7
作業示例:
1. 每天凌晨過一分鍾執行備份,適合備份操作。
1 0 * * * /root/bin/backup.sh
2. 每個工作日(Mon - Fri)11:59 PM 進行備份。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
等效於:
59 11 * * 1-5 /root/bin/backup.sh
3. 每5分鍾運行一次命令。
*/5 * * * * /root/bin/check-status.sh
4. 每個月的第一天 1:10 PM 運行。
10 13 1 * * /root/bin/full-backup.sh
5. 每個工作日 11 PM 執行。
0 23 * * 1-5 /root/bin/incremental-backup.sh
crontab命令選項:
crontab –e: 編輯crontab文件,若不存在則自動創建。
crontab –l: 顯示crontab文件內容。
crontab -r: 刪除crontab文件。
crontab -ir: 刪除crontab文件前提醒用戶。
在Linux平台上使用crontab實現任務調度,編寫cron腳本。可以設置任務以固定頻率執行,如每隔幾分鍾、小時或天執行一次。crond進程負責讀取和執行任務,無需用戶啟動或關閉。crontab文件管理著定時任務,包括crontab文件、cron.d、cron.daily、cron.hourly、cron.monthly、cron.weekly等。
若要以特定時間執行任務,可以使用at命令,指定執行時間及腳本文件。導出和編輯crontab配置文件後,使用命令導入新配置。不建議直接修改系統cron相關配置文件。啟動crond進程用/etc/init.d/crond start,開機自動啟動設置用chkconfig --add crond。
通過實例講解,了解如何在crontab中設置分、時、日、月、周等時間參數,以及如何編輯和刪除crontab文件。在/etc/crontab文件中可設定系統定期執行的任務,使用crontab命令來管理這些任務。
總結,crontab提供了靈活的定時任務管理方式,幫助自動化執行Linux操作,簡化工作流程。
❷ Linux 通過 crontab 來定時執行腳本——固定時間/固定頻率
使用 cron 守護進程管理任務調度,crontab 作為配置文件,記錄命令與執行時間。需先檢查當前是否有運行任務,若無則通過以下步驟創建與添加任務:
新任務示例:
*/5 * * * * bash路徑/file_name.sh >> 路徑/tmp_log.txt
執行步驟:
1. 創建 crontab 配置文件,內容為:
*/5 * * * * bash路徑/file_name.sh
表示每5分鍾執行一次 file_name.sh。
2. 添加 cron 任務:
crontab 路徑/cron_test.cron >> 路徑/cron_log.txt
注意:Win 上路徑不可用,否則會導致 LF char x'0d' 錯誤。
3. 驗證添加:
$ crontab -l
4. 配置文件編寫規范:
* * * * *command_statement
星號對應時間元素,合法值為分鍾1-59、小時0-23、日期1-31、月份1-12、周0-6。
第1列表示分鍾,每1分鍾用*或*/1表示。
第2列表示小時。
第3列表示日期。
第4列表示月份。
第5列表示星期。
第6列表示要運行的命令。
5. 命令說明:
crontab -e:修改 crontab 文件,文件不存在時自動創建。
crontab -l:顯示 crontab 文件內容。
crontab -r:刪除 crontab 文件。
crontab -ir:刪除 crontab 文件前提醒用戶。
查看 cron 狀態:sudo service cron status
開啟 cron:sudo /etc/init.d/cron start
關閉 cron:sudo /etc/init.d/cron stop
重啟 cron:sudo /etc/init.d/cron restart