Linux 計畫任務之crontab

2021-06-28 17:30:54 字數 3224 閱讀 9793

cron是 unix, solaris,linux 下的乙個十分有用的工具。通過cron指令碼能使計畫任務定期地在系統後台自動執行。

**: crontab 欄位與允許的值 (linux crontab)

字段描述

允許的值

分鐘一小時的第幾分

0-59

小時一天的第幾小時

0-23

日期乙個月的的第幾天

1-31

月份一年的第幾個月

1-12

週幾一周的第幾天

0-6命令

命令可以被執行的任何命令

cron 的基本用法是在特定的時間執行一項任務,如下是 6 月 10 上午 8:30 執行 full backup shell script。要注意的是時間字段採用的是 24 小時制,如果是下午 8 點,則改寫為 20 點

30 08 10 06 * /home/ramesh/full-backup
下面的增量備份指令碼每天執行兩次。

每天於 11:00, 16:00 執行,逗號兩側的時間都會執行。

00 11,16 * * * /home/ramesh/bin/incremental-backup
下面這個例子是每天 9:00-16:00 檢查資料庫狀態(包括週六)

00 09-18 * * * /home/ramesh/bin/check-db-status
如果只想工作日執行此操作

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status
檢視當前使用者定時任務

ramesh@dev-db$ crontab -l
檢視 root 使用者定時任務,用 root 登入 su-root,再執行crontab -l

root@dev-db# crontab -l

no crontab for root

檢視其它使用者定時任務

root@dev-db# crontab -u sathiya -l

@monthly /home/sathiya/monthly-backup

00 09-18 * * * /home/sathiya/check-db-status

ramesh@dev-db$ crontab -e
理論情況下,沒有每分鐘都要執行的 shell,但下面這個例子,讓我們更好的了解 crontab

* * * * * 命令
*代表著所有可能取到的值,除了直接用*外,下面的幾個例子也較為常用

上面的例子對於其它四個字段同樣試用

*/10 * * * * /home/ramesh/check-disk-space
有一些特殊的例子,可以用關鍵字替代上述五個字段–reboot,midnight,yearly,hourly

table: cron special keywords and its meaning

keyword

equivalent

@yearly

0 0 1 1 *

@daily

0 0 * * *

@hourly

0 * * * *

@reboot

重啟時執行

下面的例子將在每一年的 1 月 1 日 0:00 執行

@yearly /home/ramesh/red-hat/bin/annual-maintenance
下面的例子將在每月 1 日 0:00 執行

@monthly /home/ramesh/suse/bin/tape-backup
下面的例子將在每天 0:00 執行

@daily /home/ramesh/arch-linux/bin/cleanup-logs "day started"
@reboot cmd
預設情況下,crontab 將向布置定時任務的管理員傳送郵件,如果想重定向此使用者,新增並更新 mail

ramesh@dev-db$ crontab -l

mail="ramesh"

@yearly /home/ramesh/annual-maintenance

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

如果不想任何人接收,則直接將 mail 置空

無法安排每秒執行,因為最小處理單元是分鐘,另一方面,沒有什麼理由讓我們每秒都執行一任務

上面的例子都是用絕對的路徑

如果你想用相對的路徑,設定環境變數可以在 crontab 增加

ramesh@dev-db$ crontab -l

path=/bin:/sbin:/usr/bin:/usr/sbin:/home/ramesh

@yearly annual-maintenance

*/10 * * * * check-disk-space

除了直接編輯外,你也可以先在乙個檔案中編輯好任務,再匯入

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任務

Linux 計畫任務之cron

cron cron支援多個位置的配置檔案 etc crontab 實時監控 全域性配置檔案 與之配合的是cron.hourly cron.daily cron.weekly cron.monthly目錄下的run parts任務目錄 etc cron.d 實時監控 全域性配置檔案 var spool...

Linux計畫任務

1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...

Linux 計畫任務

at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...