歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux周期性任務計劃 at及cron的簡單總結

linux周期性任務計劃 at及cron的簡單總結

日期:2017/3/1 12:25:53   编辑:關於Linux
一次性任務計劃:at,batch 周期性任務計劃:cron at:簡單用法 at TIME at> 提交任務:^c+d 作業結果:以郵件形式發送系統上的當前用戶 郵件收發: 服務啟動與否狀態查看命令: netstat -tnl |grep ":25" 默認收發郵件僅在本機上的用戶間進行,且只能通過回環接口上的地址進行。 # mail q:退出 N:查看第N封郵件 發郵件給指定用戶(系統內): # mail USERNAME[@HOSTNAME] -s "SUBJECT" 主題 echo | mail 也可以使用管道 TIME的格式 精確時間: HH:MM 模糊時間: now+#UNIT noon , midnight,teatime, tomorrow 作業隊列查看: at -l, atq 刪除尚未運行的作業: at -d [JOB_NUM], at rm 也可以 把at要執行的所有任務放置於文件中,讓at讀取此文件作為要運行的任務(適用量大的作業) at -f /PATH/TO/SOMEFILE TIME batch:無須指定時間,會自動在將來的某個系統資源較空閒的時間點運行 周期性任務計劃:cron 依賴於後台服務,查看運行狀態 service crond status CentOS {5,6}版本查看命令,如有以下輸出結果則可使用cron crond (pid 1680) is running cron任務有兩類: 系統cron: /etc/crontab 用戶cron: 定義在/var/spool/cron/目錄中與用戶名同名的文件中 每行定義一個獨立的任務: 查看/etc/crontab後有以下信息 [root@localhost ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # 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 # | | | | | # * * * * * user-name command to be executed 由以下3部分組成: 時間點(周期性任務) user-name:用戶身份 command:要運行的任務 注意:建議在定義cron任務時,所用到的命令使用絕對路徑,或自定一個擁有完整路徑的環境變量。 時間表示法: 1.每個時間為都應該使用期可用的有效取值范圍內的值,*用於表示使用期所有有效取值, 2. */#:在對應的時間位有效取值上每# 個時間單位一次 注意:定義分鐘時的取值范圍需能被60整除 3. 連續時間點: - 4.離散時間點:, 任務運行後的結果:郵件發送給任務相關用戶: 丟棄郵件通知:輸出重定向 COMMAND > /dev/null COMMAND &> /dev/null COMMAND > /dev/null 2>&1 /dev/null:軟件模擬出的設備, bit bucket,數據黑洞 用戶cron任務的定義: crontab命令: -l:列出已定義的所有任務 -e:打開編輯器 -r:remove,移除所有任務 -u user: 不是管理自己的cron任務,而是指定的目標用戶的cron任務;僅root擁有管理其它用戶的cron任務的權限;默認管理自己的 注意:crontab文件內的%需轉義,或者用單引號對其引用。 作業:: 每周一到周六的凌晨3點20分,運行cp命令對/etc/目錄進行歸檔另存,存儲位置為/backups/etc-YYYY-MM-DD 20 3 * * 1-6 /bin/cp /etc /backups/etc-$(date+'%Y-%m-%d') [root@localhost ~]# mkdir -p /backups/etc [root@localhost ~]# crontab e [root@localhost etc]# crontab -l 20 3 * * 1-6 /bin/cp /etc /backups/etc-$(date +'%Y-%m-%d') 每周日凌晨2點30分,運行cp命令對/etc/fstab文件進行備份,存儲位置為/backup/fstab-YYYY-MM-DD-hh-mm-ss 30 2 * * 7 /bin/cp /etc/fstab /backup/fstab-$(date +'%Y-%m-%d-%H-%M-%S') [root@localhost etc]# mkdir -p /backups/fstab [root@localhost etc]# crontab e [root@localhost etc]# crontab l 30 2 * * 7 /bin/cp /etc/fstab /backup/fstab-$(date +'%Y-%m-%d-%H-%M-%S') 每天晚上12點,取得/proc/meminfo文件中所有以S或M開頭的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上類似===============分隔線 6 0 * * * /bin/egrep /proc/meminfo "^[S,M].*" >> /statistics/meminfo.txt && echo ========================== >> /statistics/meminfo.txt [root@localhost etc]# mkdir -p /backups/fstab [root@localhost statistics]# crontab e [root@localhost statistics]# crontab -l 6 0 * * * /bin/egrep /proc/meminfo "^[S,M].*" >> /statistics/meminfo.txt && echo ========================== >> /statistics/meminfo.txt
Copyright © Linux教程網 All Rights Reserved