linux下例行任務執行:
at:交互式指定命令執行,執行結果發送郵件
格式: at HH::MM 時下次到達HH::MM時運行程序
at now+ #[minutes|hours|days|weeks]
at [noon|midnight|teatime]
at month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)
atq,at -l 查看at執行隊列
atrm,at -d 刪除at隊列中指定任務
at -f file 讀取file作爲命令文件
batch 自動在系統資源空閒時執行
at命令通過Ctrl+d提交後臺執行,執行結果發送給root用戶郵件
用戶能否執行at命令需查看/etc/at.allow,查看是否允許該用戶執行,若無該文件則查看/etc/at.deny查看是否阻止該文件執行
mail:發送郵件
mail USERNAME[@HOSTNAME]
-s “SUBJECT”指定郵件主題
[root@localhost ~]# echo"Hello world" | mail -s "test mail 1" admin
crontab:
crontab依賴於後臺服務 service crond status
cron配置文件:
系統cron:/etc/crontab
用戶cron:/var/spool/cron/USERNAME
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# 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
定義命令應使用絕對路徑
*表示不受限制 */# 每#時間一次
*/7 * * * * 並不能做到精確7分鐘一次,只能通過腳本控制420s一次來實現
* * * * 1-5 週一到週五執行
* * * * 2,4 每週24執行
結果發送給相關用戶郵件,不顯示郵件可使用輸出重定向解決
Command> /dev/null
用戶crontab 命令:
-l 列出已經定義好的所有任務
-e 打開cron編輯器,增加或刪改任務,不推薦直接使用vim
-r 移除所有任務
管理員可以 crontab –u admin –e 管理員給admin創建任務
anacron爲cron補充,防止關機情況下未執行任務
facl必須文件系統啓用才能使用
facl :FILEACL 將自己的文件的訪問權限授予他人
查看文件facl情況:
getfacl FILE…
setfacl –m 目標:權限 FILE… setfacl –x 目標:權限 FILE 取消權限 -R遞歸
目標 用戶 u:USERNAME
組 g:GROUPNAME
權限:rwx
啓用facl後屬性權限查找爲屬組->屬主facl -> 屬組->屬組facl->other
Test:
2、每週一到週六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置爲/backups/etc-YYYY-MM-DD;
20 3 * * 1-6 /usr/bin/cp /etc/ /backup/etc-"date +%F"
3、每週日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置爲/backup/fstab-YYYY-MM-DD-hh-mm-ss;
30 2 * * 7 /usr/bin/cp /etc/fstab /backup/fstab-"date +%F-%H-%M-%S"
4、每天晚上12點,取得/proc/meminfo文件中所有以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上類似===============分隔線;
0 0 * * * /usr/bin/egrep "^[S|M].*" /proc/meminfo >>/statistics/meminfo.txt
0 1 * * * /usr/bin/echo "==================" >>/statistics/meminfo.txt