1、總結Linux系統上的任務計劃(at、crontab)的詳細使用方法;
at命令: 承載未來時間運行的某作業: 支持使用作業隊列: 默認爲a隊列; Ctrl+d at [option]... TIME TIME: (1) 絕對時間 HH:MM, MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD tomorrow (2) 相對時間 now+#UNIT minute, hour, day, week (3) 模糊時間 midnight noon teatime 常用選項: -q QUEUE: at作業隊列; -f /PATH/FROM/SOMEFILE:從指定的文件中讀取要運行的作業; -l: 查看作業隊列中的等運行作業列表;相當於使用atq命令; -c AT_JOB_NUM: 查看待運行作業的內容; -d: 刪除指定作業;相當於atrm
crontab:週期性任務計劃 守護進程:crond 週期性任務有兩類: (1) 系統cron任務;沒有默認運行用戶身份,所以需要額外指定運行者; /etc/crontab vim命令 # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 7個字段: 前5個字段:時間點 user-name: 以哪個用戶的身份運行任務 command to be executed: 要運行任務 (2) 用戶cron任務:由某個用戶所提交,默認就以提交者的身份運行,所以無需額外指定運行者; /var/spool/cron/USERNAME vim命令;不建議 crontab命令:建議 # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed 5個時間點: 分鐘:有效取值範圍0-59; 小時:0-23 日:1-31 月:1-12 周幾:0-7 注意:幾月幾號與周幾,不建議同時使用; 例如: 6 * * * * 時間表示法: *: 對應時間點有效取值範圍內的每個時間點; -: 一個特定連續時間範圍, 3-7 ,:一個離散的時間點, 3,5,7 /#:有效時間範圍內的每多少時間;用於指定頻率; 1-30/4, */4 5 */3 * * * /bin/echo "howdy" 5 7 * * 1-5 /bin/echo "howdy" crontab命令: crontab [-u user] [-l | -r | -e] -u user: 不是管理自己的cron任務,而是指定的目標用戶的cron任務;僅root擁有管理其它用戶的cron任務的權限;默認管理自己的; -l: list,列出任務; -r: remove, 移除所有任務; -e: edit,編輯,打開一當前shell會話的默認編輯器來編輯cron任務表;
2、每週一到週六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置爲/backups/etc-YYYY-MM-DD;
20 3 * * 1,6 cp -rp /etc /backups/etc-`date +%Y-%m-%d`
3、每週日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置爲/backup/fstab-YYYY-MM-DD-hh-mm-ss;
30 2 * * 0 cp /etc/fstab /backup/fstab-`date +%Y-%m-%d-%H-%M-%S`
4、每天晚上12點,取得/proc/meminfo文件中所有以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上類似===============分隔線;
00 0 * * * echo "=========================" >> /tmp/meminfo.txt | egrep "^S|^M" /proc/meminfo >> /tmp/meminfo.txt