Linux Crontab:15 個很好用的 Cron 工作示例

      網友投稿 976 2025-04-01

      經驗豐富的 Linux 系統管理員知道在后臺自動運行日常維護作業的重要性。

      Linux Cron 實用程序是一種在特定時間和/或日期持續調度例行后臺作業的有效方法。

      這篇文章講述了15 個很好用的 crontab?工作調度示例。

      Linux Crontab 格式

      MIN HOUR DOM MON DOW CMD

      1. 為特定時間安排作業

      cron 的基本用法是在特定的時間執行一個作業,如下所示。這將在6 月 10 日上午 08:30執行完整備份 shell 腳本(完整備份)。

      請注意,時間字段使用 24 小時格式。因此,對于上午 8 點使用 8,對于晚上 8 點使用 20。

      30 08 10 06 * /home/ramesh/full-backup

      30?– 30 分鐘

      08?– 08 上午

      10?– 第 10 天

      06?– 第 6 個月(六月)

      *?– 一周中的每一天

      2. 為多個實例安排作業(例如,一天兩次)

      以下腳本每天進行兩次增量備份。

      本示例在每天的 11:00 和 16:00 執行指定的增量備份 shell 腳本(incremental-backup)。字段中的逗號分隔值指定該命令需要在所有提到的時間內執行。

      00 11,16 * * * /home/ramesh/bin/incremental-backup

      00?– 第 0 分鐘(一小時的頂部)

      上午11,16?– 11 點和下午 4 點

      *?– 每天

      *?– 每個月

      *?– 一周中的每一天

      3. 安排特定時間范圍的工作(例如僅在工作日)

      如果您希望在特定時間范圍內每小時安排一次作業,請使用以下內容。

      本示例在每天上午 9 點至下午 6 點的工作時間內(包括周末)檢查數據庫的狀態

      00 09-18 * * * /home/ramesh/bin/check-db-status

      00?– 第 0 分鐘(一小時的頂部)

      09-18?– 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm

      *?– 每天

      *?– 每個月

      *?– 一周中的每一天

      本示例在每個工作日(即不包括周六和周日)的工作時間上午 9 點至下午 6 點檢查數據庫的狀態

      00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

      00?– 第 0 分鐘(一小時的頂部)

      09-18?– 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm

      *?– 每天

      *?– 每個月

      1-5 -周一、周二、周三、周四和周五(每個工作日)

      4. 如何查看 Crontab 條目?

      要查看您的 crontab 條目,請從您的 unix 帳戶鍵入 crontab -l,如下所示。

      ramesh@dev-db$ crontab -l @yearly /home/ramesh/annual-maintenance */10 * * * * /home/ramesh/check-disk-space [Note: This displays crontab of the current logged in user]

      以 root 用戶 (su – root) 登錄并執行 crontab -l ,如下所示。

      root@dev-db# crontab -l no crontab for root

      要查看其他 Linux 用戶的 crontab 條目,請登錄到 root 并使用-u {username} -l,如下所示。

      root@dev-db# crontab -u sathiya -l @monthly /home/sathiya/monthly-backup 00 09-18 * * * /home/sathiya/check-db-status

      5. 如何編輯 Crontab 條目?

      要編輯 crontab 條目,請使用 crontab -e,如下所示。默認情況下,這將編輯當前登錄的用戶 crontab。

      ramesh@dev-db$ crontab -e @yearly /home/ramesh/centos/bin/annual-maintenance */10 * * * * /home/ramesh/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C [Note: This will open the crontab file in Vim editor for editing. Please note cron created a temporary /tmp/crontab.XX... ]

      當你用 :wq 保存上述臨時文件時,它會保存 crontab 并顯示以下消息,表明 crontab 修改成功。

      ~ "crontab.XXXXyjWkHw" 2L, 83C written crontab: installing new crontab

      以 root 用戶 (su – root) 登錄并執行 crontab -e,如下所示。

      root@dev-db# crontab -e

      要編輯其他 Linux 用戶的 crontab 條目,請登錄到 root 并使用-u {username} -e,如下所示。

      root@dev-db# crontab -u sathiya -e @monthly /home/sathiya/fedora/bin/monthly-backup 00 09-18 * * * /home/sathiya/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

      6. 使用 Cron 每分鐘安排一個作業。

      理想情況下,您可能不需要每分鐘安排一次作業。但是理解這個例子將幫助你理解本文下面提到的其他例子。

      * * * * * CMD

      * 表示所有可能的單位——即全年每小時的每一分鐘。除了直接使用這個 *,您會發現它在以下情況下非常有用。

      當您在分鐘字段中指定 */5 時,表示每 5 分鐘一次。

      當您在分鐘字段中指定 0-10/2 時,意味著在前 10 分鐘內每 2 分鐘一次。

      因此,上述約定可用于所有其他 4 個字段。

      7. 每 10 分鐘安排一個后臺 Cron 作業。

      如果您想每 10 分鐘檢查一次磁盤空間,請使用以下方法。

      */10 * * * * /home/ramesh/check-disk-space

      它全年每 10 分鐘執行一次指定的命令 check-disk-space。但是您可能需要僅在辦公時間執行命令,反之亦然。上面的例子展示了如何做這些事情。

      我們可以使用單個關鍵字來指定它,而不是在 5 個字段中指定值,如下所述。

      在某些特殊情況下,您可以使用 @ 后跟關鍵字來代替上述 5 個字段,例如重新啟動、午夜、每年、每小時。

      Linux Crontab:15 個很好用的 Cron 工作示例

      8. 使用@yearly 在每年的第一分鐘安排工作

      如果您希望在每年的第一分鐘執行一項工作,那么您可以使用@yearly?cron 關鍵字,如下所示。

      這將在每年 1 月 1 日的 00:00 使用年度維護 shell 腳本執行系統年度維護。

      @yearly /home/ramesh/red-hat/bin/annual-maintenance

      9. 使用@monthly 安排每個月開始的 Cron 作業

      它與上面的@yearly 相似。但是使用@monthly?cron 關鍵字每月執行一次命令。

      這將在每月 1 日的 00:00 執行 shell 腳本磁帶備份。

      @monthly /home/ramesh/suse/bin/tape-backup

      10. 每天使用@daily 安排后臺作業

      使用@daily?cron 關鍵字,這將在每天 00:00 使用 cleanup-logs shell 腳本執行每日日志文件清理。

      @daily /home/ramesh/arch-linux/bin/cleanup-logs "day started"

      11. 如何在每次重啟后使用@reboot 執行 Linux 命令?

      使用@reboot?cron 關鍵字,這將在機器每次啟動后執行一次指定的命令。

      @reboot CMD

      12. 如何使用 MAIL 關鍵字禁用/重定向 Crontab 郵件輸出?

      默認情況下,crontab 將作業輸出發送給安排作業的用戶。如果要將輸出重定向到特定用戶,請在 crontab 中添加或更新 MAIL 變量,如下所示。

      ramesh@dev-db$ crontab -l MAIL="ramesh" @yearly /home/ramesh/annual-maintenance */10 * * * * /home/ramesh/check-disk-space [Note: Crontab of the current logged in user with MAIL variable]

      如果您不希望將郵件發送到任何地方,即停止通過電子郵件發送 crontab 輸出,請在 crontab 中添加或更新 MAIL 變量,如下所示。

      MAIL=""

      13. 如何使用 Crontab 每秒執行一次 Linux Cron 作業。

      您不能安排每秒一次的 cronjob。因為在 cron 中,您可以指定的最小單位是分鐘。在典型的場景中,我們大多數人沒有理由每秒在系統中運行任何作業。

      14.在Crontab中指定PATH變量

      以上所有例子我們都指定了需要執行的Linux命令或shell-script的絕對路徑。

      例如,如果您只想指定tape-backup,而不是指定/home/ramesh/tape-backup,則將路徑/home/ramesh 添加到crontab 中的PATH 變量中,如下所示。

      ramesh@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/ramesh @yearly annual-maintenance */10 * * * * check-disk-space [Note: Crontab of the current logged in user with PATH variable]

      15. 從 Cron 文件安裝 Crontab

      除了直接編輯 crontab 文件之外,您還可以先將所有條目添加到 cron 文件中。在文件中包含所有這些條目后,您可以將它們上傳或安裝到 cron,如下所示。

      ramesh@dev-db$ crontab -l no crontab for ramesh $ cat cron-file.txt @yearly /home/ramesh/annual-maintenance */10 * * * * /home/ramesh/check-disk-space ramesh@dev-db$ crontab cron-file.txt ramesh@dev-db$ crontab -l @yearly /home/ramesh/annual-maintenance */10 * * * * /home/ramesh/check-disk-space

      注意:這會將 cron-file.txt 安裝到您的 crontab,這也將刪除您的舊 cron 條目。因此,從 cron-file.txt 上傳 cron 條目時請注意。

      Linux Shell Unix

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如果日期循序錯亂在嗎排列好(如何將日期排序而不打亂其他)
      下一篇:word文件中表格上面有一塊空白怎么刪除(word表格上面的空白怎么刪除)
      相關文章
      亚洲熟妇无码另类久久久| 亚洲一级片免费看| 久久香蕉国产线看观看亚洲片| 在线观看免费亚洲| 亚洲AV无码成人精品区日韩| 亚洲影院天堂中文av色| 色天使亚洲综合在线观看| 中文字幕乱码亚洲精品一区| 亚洲日本久久一区二区va| 久久精品亚洲AV久久久无码| 亚洲av无码片区一区二区三区| 亚洲成a人片在线观看中文!!! | 一区二区亚洲精品精华液| 亚洲不卡在线观看| 亚洲制服丝袜第一页| 在线a亚洲老鸭窝天堂av高清| 77777亚洲午夜久久多喷| 在线综合亚洲欧洲综合网站| 亚洲欧美综合精品成人导航| 亚洲国产精品无码观看久久| 亚洲成a人无码亚洲成av无码 | 久久精品国产亚洲av麻豆图片| 久久狠狠爱亚洲综合影院 | 亚洲欭美日韩颜射在线二| 亚洲一区二区三区偷拍女厕| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲人成影院在线无码按摩店| 亚洲人成77777在线播放网站| 国产亚洲一区二区三区在线观看| 国产亚洲综合一区柠檬导航| 亚洲国产精华液网站w| 亚洲视频在线一区二区三区| 亚洲一区二区免费视频| 亚洲愉拍一区二区三区| 亚洲av午夜成人片精品电影| 久久亚洲2019中文字幕| 亚洲AV午夜福利精品一区二区 | 亚洲国产成人久久精品影视| 亚洲视频一区在线| 亚洲综合小说另类图片动图| 香蕉视频亚洲一级|