《LINUX實戰:Linux下計劃任務和標準化工作流程》要點:
本文介紹了LINUX實戰:Linux下計劃任務和標準化工作流程,希望對您有用。如果有疑問,可以聯系我們。
1、準時任務和計劃任務:
2、一次性準時任務at(生產中很少使用)
at命令:?at?[option]?TIME
? ? ? ?
常用選項:
? ?
-V?顯示版本信息:
? ?
-l:?列出指定隊列中等待運行的作業;相當于atq
? ?
-d:?刪除指定的作業;相當于atrm
? ?
-c:?查看具體作業任務
? ?
-f?
/path/from/somefile
:從指定的文件中讀取任務
? ?
-m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出
?
#注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶
?
TIME:定義出什么時候進行?at?這項任務的時間
?
HH:MM?[YYYY-mm-
dd
]
?
noon,?midnight,?teatime(4pm)
tomorrow
now+
#{minutes,hours,days,?OR?weeks}
?
HH:MM?02:00
#在今日的?HH:MM?進行,若該時刻已過,則明天此時執行任務
?
HH:MM?YYYY-MM-DD?02:00?2016-09-20
#規定在某年某月的某一天的特殊時刻進行該項任務
?
HH:MM[am|pm]?[Month]?[Date]
04pm?March?17
17:20?tomorrow
HH:MM[am|pm]?+?number?[minutes|hours|days|weeks]
#在某個時間點再加幾個時間后才進行該項任務
now?+?5?minutes
02pm?+?3?days?
執行方式:
1)交互式?2)輸入重定向?3)?at?–f?文件
? ?
依賴與atd服務,必要啟動才能實現at任務
at隊列存放在
/var/spool/at
目錄中
? ?
/etc/at
.{allow,deny}控制用戶是否能執行at任務
白名單:?
/etc/at
.allow?默認不存在,只有該文件中的用戶才能執行at命令
黑名單:?
/etc/at
.deny?默認存在,拒絕該文件中用戶執行
at命令,?而沒有在at.deny?文件中的使用者則可執行
如果兩個文件都不存在,只有?root?可以執行?at?命令
3、執行關機未能執行的計劃任務:anacron
運行計算機關機時
cron
不運行的任務,?CentOS6以后版本取消anacron服務,
由crond服務管理
? ?
對筆記本電腦、臺式機、工作站、偶爾要關機的服務器及其它不一直開機
的系統很重要對很有用
? ?
配置文件:?
/etc/anacrontab
,負責執行
/etc/
?cron
.daily
/etc/cron
.weekly?
/etc/cron
.monthly中系統任務.
?
字段1:如果在這些日子里沒有運行這些任務……
?
字段2:在重新引導后等待這么多分鐘后運行它
?
字段3:任務辨認器,在日志文件中標識
?
字段4:要執行的任務
? ?
由
/etc/cron
.hourly
/0anacron
執行
? ?
當執行任務時,更新
/var/spool/anacron/cron
.daily?文件的時間戳?
CentOS6使用
/etc/cron
.daily
/tmpwatch
定時清除臨時文件
? ?
CentOS7使用systemd-tmpfiles-setup服務實現
配置文件:
? ?
/etc/tmpfiles
.d/*.conf
? ?
/run/tmpfiles
.d/*.conf
? ?
/usr/lib/tmpfiles/
*.conf
? ?
/usr/lib/tmpfiles
.d
/tmp
.conf
? ?
d?
/tmp
?1777?root?root?10d
? ?
d?
/var/tmp
?1777?root?root?30d
命令:
?
systemd-tmpfiles?–clean|remove|create?configfile
4、計劃任務crontab(生產中重點)
crontab
命令:
crontab
?[-u?user]?[-l?|?-r?|?-e]?[-i]
-l:?列出所有任務;
-e:?編纂任務;
-r:?移除所有任務;
-i:同-r一同使用,以交互式模式移除指定任務
-u?user:?僅root可運行,指定用戶管理
cron
任務
控制用戶執行計劃任務:
? ?
/etc/cron
.{allow,deny}
用戶
cron
:
? ?
crontab
命令定義,每個用戶都有專用的
cron
任務文件:
/var/spool/cron/USERNAME
crontab -e
#?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
特殊字符 | ? ? ? ? ? ? ? ? ? ? ? ? 作用 |
? ?* | 表示任何每一個,Ex:* * * * *表示的便是每一min |
? ?- | 表示一個范圍,Ex:5-10 * * * * *表示第5到10分每min |
? ?, | 分割多個,Ex:5,6,7,10 * * *表示第5,6,7,10分四個時間點 |
? ?/n | 表示每隔n個時間 Ex:*/4 * * * * 表示每隔4min |
Ex:
*?23,00-07
/1
?*?*?*?
/usr/local/bin/apache/bin/apachectl
?graceful
?這里很容易懂得成為23-第二天7天每隔一小時重啟一次apache服務.
由于秒的位置是*,實際成果是23-第二天7點每分鐘重啟一次apache服務.
正確的應該給分鐘賦固定值
01?23,00-07
/1
?*?*?*?
/usr/local/bin/apache/bin/apachectl
?graceful
禮拜最好和日期不要同時用
1、日月為* *時刻,只是星期生效,這時刻取得時交集
2、日月有值的時刻,日期和星期同時生效,取并集
01?05?28?*?6,7?
/bin/bash
?/cron_scripts/backup_etc
.sh?>
/dev/null
?2>&1
備份劇本會在周六周日或者每月28號,凌晨5點1分執行
5、crontab尺度化工作流程
?1、計劃任務腳本指定寄存位置,便于維護和定期備份
?2、寫定時任務前必須在前面寫注釋,包含以下:
? 添加計劃任務的人,添加任務的時間,任務有效期,計劃任務腳本的對象,腳本的作用,以及其他必要提醒其他注意的事項
?3、執行的腳本前加上/bin/bash或者/bin/sh,腳本必需使用完整的絕對路徑
?4、定時任務,必要盡量避免標準輸出和標準錯誤輸出 結尾加上 >/dev/null 2>&1
? ?計劃任務的尺度輸出和尺度錯誤輸出都會給root用戶以郵件,很容易撐滿磁盤消耗磁盤inode
?5、能用命令完成的也要寫在劇本里
?6、在指定用戶下執行相關的準時任務
?7、制定尺度的書寫規范
其他使用注意:
?環境變量問題:計劃文物的腳本得環境變量必要在腳本重新定義,可以手動在腳本內加載環境變量的配置文件如
. /etc/profile.
?時間變量的%必要轉義
本文永遠更新鏈接地址:
《LINUX實戰:Linux下計劃任務和標準化工作流程》是否對您有啟發,歡迎查看更多與《LINUX實戰:Linux下計劃任務和標準化工作流程》相關教程,學精學透。維易PHP學院為您提供精彩教程。