如何在 Linux 上使用 cron 定時器
cron 定時器是一個可以按照計劃自動運(yùn)行命令的工具。
cron 定時器是一個可以按照計劃自動運(yùn)行命令的工具。定時器作業(yè)稱為 cronjob,創(chuàng)建于 crontab 文件中。這是用戶自動操作電腦的最簡單也是最古老的方法。
創(chuàng)建一個 cronjob
要創(chuàng)建一個 cronjob,你可以使用 crontab 命令,并添加 -e 選項:
- $ crontab -e
這將使用默認(rèn)的文本編輯器打開 crontab。如需指定文本編輯器,請使用 EDITOR 環(huán)境變量:
- $ EDITOR=nano crontab -e
Cron 語法
如需調(diào)度一個 cronjob,你需要提供給計算機(jī)你想要執(zhí)行的命令,然后提供一個 cron 表達(dá)式。cron 表達(dá)式在命令調(diào)度時運(yùn)行:
- 分鐘(0 到 59)
- 小時(0 到 23, 0 代表午夜執(zhí)行)
- 日期(1 到 31)
- 月份(1 到 12)
- 星期(0 到 6, 星期天是 0)
星號 (*) 代表的是“每一個”。例如,下面的表達(dá)式在每月每日每小時的 0 分鐘運(yùn)行備份腳本:
- /opt/backup.sh 0 * * * *
下面的表達(dá)式在周日的凌晨 3:30 運(yùn)行備份腳本:
- /opt/backup.sh 30 3 * * 0
簡寫語法
現(xiàn)代的 cron 支持簡化的宏,而不是 cron 表達(dá)式:
- @hourly 在每天的每小時的 0 分運(yùn)行
- @daily 在每天的 0 時 0 分運(yùn)行
- @weekly 在周日的 0 時 0 分運(yùn)行
- @monthly 在每月的第一天的 0 時 0 分運(yùn)行
例如,下面的 crontab 命令在每天的 0 時運(yùn)行備份腳本:
- /opt/backup.sh @daily
如何停止一個 cronjob
一旦你開始了一個 cronjob,它就會永遠(yuǎn)按照計劃運(yùn)行。想要在啟動后停止 cronjob,你必須編輯 crontab,刪除觸發(fā)該作業(yè)的命令行,然后保存文件。
- $ EDITOR=nano crontab -e
如需停止一個正在運(yùn)行的作業(yè),可以 使用標(biāo)準(zhǔn)的 Linux 進(jìn)程命令 來停止一個正在運(yùn)行的進(jìn)程。
它是自動的
一旦你編寫完 crontab,保存了文件并且退出了編輯器。你的 cronjob 就已經(jīng)被調(diào)度了,剩下的工作都交給 cron 完成。