寫在前面
隨著學習的不斷深入,漸漸的已經意識到不再是開始一天只知道幾個簡單的命令而已了,但是呢,命令還必須要繼續學習的,修房子哪有不用磚的,所以,要想有一棟堅實穩固的房子,還必須靜下心來繼續認識命令。
命令注解
今天要講的幾個命令是跟工作息息相關的,他們都是在以后的生活中使用率比較高的命令之一,比如馬上要講的這個,如果你的老板讓你在每天凌晨三點執行一次數據備份,你難道真的三點起床備份完再去睡覺么?我想你肯定不想也不希望這樣,那么下面這個命令就要學好了。
任務計劃是在未來的某個時間點或周期性的時間點上執行我們預先設定好的可執行任務,讓系統自動運行,而不用人工干預執行。這種執行也分為一次執行和周期性執行,一次執行最常用的要數at命令,而周期性的執行命令則是crontab。? at的使用方法也非常簡單,基本的使用方法為:
at [OPTIONS] TIME
常用選項:
- -l:用于查看作業隊列;
- -f ?FILE_NAME:從指定文件中讀取作業任務;
- -d #:刪除指定的作業;
- -c:查看指定作業的具體內容;
- -q QUEUE:指明隊列
at命令允許使用一套相當靈活的指定時間的方法。能夠接受hh:mm(小時:分鐘)式的時間指定,也能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的時間來指定。用戶還能夠采用12小時計時制,即在時間后面加上AM(上午)或PM(下午)來說明是上午還是下午,還能夠指定命令執行的具體日期,指定格式為month?day(月?日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。 上面介紹的都是絕對計時法,其實at還支持使用相對計時法,這對于安排不久就要執行的命令是很有好處的。指定格式為:now?+?count?time-units?,now就是當前時間,time-units是時間單位,這里能夠是minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。count是時間的數量,究竟是幾天,還是幾小時,等等。?更有一種計時方法就是直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。因此TIME的格式有如下常用指定方法:
- HH:MM:在今日的?HH:MM?時刻進行,若該時刻已超過,則明天的?HH:MM?進行此任務;
- HH:MM?YYYY-MM-DD:在某年某月的某一天的特殊時刻進行該項任務;
- noon,midnight,teatime:指定模糊的時間方式;
- tomorrow:直接指定明天;
- now+#[minutes|hours|days|weeks]:從現在開始以后的多長時間;
另一個任務計劃則是周期性的執行任務crontab命令,cron分為系統任務和用戶任務,系統任務主要是用于系統自身的維護,而用戶任務則是用戶自定義的為了完成某一特定的工作。所有用戶定義的任務都被保存在?/var/spool/cron目錄中與用戶名同名的文件中,每一行代表一個任務計劃,共有六個字段,前五個字段是時間,最后一個是命令段:
在以上的時間段中,可以有如下取值方法:
- 特定值:給定時間點有效取值范圍內的值;
- *:給定時間點上有效取值范圍內的所有值:表“每……”;
- ,:給定時間點上使用逗號分隔的多個值;
- -:在時間點上使用-連接開頭和結束,表示一個范圍;
- */#:在指定時間點上,定義步長,#即步長;
cron任務還可以通過命令行的方式指定,即使用crontab命令:
crontab [OPTIONS]
常見的有如下選項:
- -e:編輯任務;
- -l:列出所有任務;
- -r:移除所有任務;
- -i:在使用-r選項移除所有任務時提示用戶確認;
- -u user:root用戶可為指定用戶新建cron任務;
使用練習
有了上面的儲備知識,還是來練習提升一下吧。
1、制定每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-
28 10:00:00。
使用crontab -e打開命令行操作窗口,完成如下信息輸入:
寫在最后
上面的內容只是作了簡單的介紹,練習也只貼出了一個,如果您覺得不夠盡興,可以通過網絡途徑獲取更多練習,提升一下自己。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90613
贊~內容上雖然不多,但有自己的思考點在里面~還是不錯的,繼續加油~