Linux 排程 crontab 介紹

在 Linux 排程可以分成兩種大類別

  1. 單一排程,做完一次即結束
  2. 固定排程,指定時間執行

at

at 可以用來處理單一排程,需要搭配 atd service 來執行,可以在執行完畢後,就結束排程

crontab

crontab 可以用來處理固定排程,在指定時間循環執行

指定 crontab 操作權限

可以在 cron.allow 指定可操作 crontab 的使用者

/etc/cron.allow

cron.deny 則可以指定禁止使用的用戶

/etc/cron.deny

並且,在使用者排定 crontab 工作項目後之後,工作項目都會被記錄到 spool

/var/spool/cron/使用者名稱/

並且,cron所執行的每一項工作紀錄都會被記錄到 var/log/cron

也可以從這裡查詢是否有被植入木馬

var/log/cron

使用者自行設計排程

使用 crontab 常見的操作,有以下三種

  • crontab -e 編輯
  • crontab -i 檢視
  • crontab -r 清除

系統排程

系統自動排程的腳本分別放在這幾個地方執行

  • /etc/crontab
  • /etc/cron.d/*

跟使用者工作有關的是

  • /var/spool/cron/*

指令直接放在以下目錄,讓系統根據目錄相關的時間,時間到就自動執行一次

/etc/cron.hourly/ 每小時

/etc/cron.daily/ 每天

/etc/cron.weekly/ 每週

/etc/cron.monthly/ 每月

工具推薦

crontab guru 可以快速查看 crontab 時間設定

https://crontab.guru/