【26期】Linux第九周學習小總結

本周帶來的是慢慢的技術分享,有關于計劃任務的分享,涉及的知識點主要是at和cron,crontab的詳解,計劃任務可以將任何腳本、程序或文檔安排在某個最方便的時間運行,有利于我們的自動化運維,當某項任務多次重復,或者某個指定的時間點多次執行時,就可以使用計劃任務方便我們的工作。

計劃任務不是有只linux 才有的技術,windows中我們亦可以通過控制面板–>管理工具–>任務計劃程序,找到對應的任務計劃程序,我們可以在任務計劃程序庫中的列表中看到,我們的windows中也有很多默認的任務計劃程序,它們會在指定的時間或者滿足條件的時候執行,可以指定執行一次,多次,循環式的幫我們的windows的穩定默默地幫助,那么我們的linux有沒有那么智能呢?

我們學習的linux與計劃任務的命令有at、corn和corntab。

at: 未來的某時間點執行一次任務

用法:at [option] TIME

[option]

? ? ? ? ? -V 顯示版本信息

? ? ? ? ? -l:查看計劃任務列表;相當于atq

? ? ? ? ? -d:刪除指定的作業;相當于atrm

? ? ? ? ? -c 編號:查看計劃任務詳細內容

? ? ? ? ? -f 文件:調用文件中的命令進行任務

? ? ? ? ?-m:當任務被完成之后,將給用戶發送郵件

? ? ?TIME:定義出什么時候進行 at 這項任務的時間

? ? ?HH:MM [YYYY-mm-dd] ?若該時刻已過,則明天此時執行任務

? ? ?noon, midnight, teatime( 4pm) tomorrow now+#{minutes,hours,days, OR weeks} :這些都是一些通用的時間

? ? ?我們熟悉了一些at的使用選項,那我們開始實戰一下吧,我們的計劃任務是:在五分鐘后執行廣播,系統將在五分鐘后關閉。

? ??01

02

我們可以看到我們time是now+5min,就是說當我們退出編輯模式的一瞬間開始計算,而且我們的這個五分鐘后都是指的是從當前這一分鐘開始的,當我在練習的時候經常會使用,一分鐘完成某些操作,就會有剛完成編輯,突然就開始執行的情況,同樣使用時間HH:MM這樣的格式,也會碰到那種,錯過當前時間的事情,只能等明天了才能執行,或者刪除任務重新開始寫我們的計劃任務。

03

然后我們是用at -l可以查看我們任務計劃的列表,上面我通過紅色筆劃著的三個框框,第一個框框9值得是這個任務的編號,第二框框14:46:00指的是任務將要執行的時間愛你,最后的root是指任務的新建執行人是誰,如果希望了解更詳細的可以使用at -c來查詢詳細信息!

04

05

其實看著很長的一段文字,也就是最后的一點有用就是查看我們的計劃任務的執行信息,也可以通過文件的方式來查詢:/var/spool/at/ 這個目錄下存放著我們at的臨時文件,當我們生成任務是,會自動生成任務文件,當任務執行結束時,則自動刪除文件。

黑白名單

/etc/at.{allow,deny}控制用戶是否能執行at任務
白名單:
/etc/at.allow 默認不存在,只有該文件中的用戶才能執行at命令
黑名單:
/etc/at.deny 默認存在,拒絕該文件中用戶執行at命令, 而沒有在at.deny 文件中的使用者則可執行
如果兩個文件都不存在,只有
root 可以執行 at

好了,今天的重點不在于at,而是在于我們的cron

確保crond守護處于運行狀態:

CentOS 7:
systemctl status crond
CentOS 6:
service crond status

系統cron任務:系統維護作業
? ? /etc/crontab
用戶cron任務:
? ?crontab命令

?日志: /var/log/cron:用來監控我們的cron的每個操作配合tail -f執行

既然我們的系統任務在/etc/crontab中那我們查看一下這個文件

06

時間表示法:
(1) 特定值
給定時間點有效取值范圍內的值?

(2) *
給定時間點上有效取值范圍內的所有值
表示“每
…”
(3) 離散取值
#,#,#
(4) 連續取值
#-#
(5) 在指定時間范圍上,定義步長
/#: #即為步長?:這個步長指得是我們通過多長時間來執行一次比如在第一位的分鐘上*/5,就是每五分鐘一次

同時還給予了我們一些便利的時間格式:

@reboot Run once after reboot.
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *

用戶命令crontab:
crontab命令定義,每個用戶都有專用的cron任務文件:/var/spool/cron/USERNAME
? ? ? ? ?crontab命令:
? ? ? ? ?用法:crontab [-u user] [-l | -r | -e] [-i]

? ? ? ? 選項:
-l:
列出所有任務;
? ? ? ? ? ? ?-e: 編輯任務;
? ? ? ? ? ? ?-r: 移除所有任務;
? ? ? ? ? ? ?-i:同-r一同使用,以交互式模式移除指定任務
? ? ? ? ? ? ?-u user: root可運行,指定用戶管理cron任務
控制用戶執行計劃任務(黑白名單):/etc/cron.{allow,deny}

注意:沒有被重定向的輸出會被郵寄給用戶,不管是我們的at還是cron,crontab都是一樣,如果有輸出,就會被發mail通知用戶

作業小練習:

?1、每天的2點和12點整,將/etc備份至/testdir/backup目錄中,保存的文件名稱格式為“ etcbak-yyyy-mm-ddHH.tar.xz”
?2、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“ messages-yyyymmdd”
?3、每兩小時取出當前系統/proc/meminfo文件中以SM開頭的信息追加至/tmp/meminfo.txt文件中
?4、工作日時間,每10分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高于80%,就執行wall警報 ?07

08

我的練習用了兩種方法來實現,一種是直接把命令寫在里面,不夠要注意%,要轉義使用,第二種方式是直接寫入我們的shell腳本里,能夠有很好的修改性,擴展性。

好了,今天的分享就到這里了,除了技術的分享,我還要吐槽一下這個編輯器,tab鍵被吃了嗎!?。。。。。。。。。。。。。?!

你知道縮進多難受嗎!?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?/p>

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86627

(0)
努力!奮斗!努力!奮斗!
上一篇 2017-09-09 11:17
下一篇 2017-09-09

相關推薦

  • linux中的vim

    什么是vim:     Linux 在命令行下的文本編輯器,很多個別軟件的編輯接口都會主動調用vim,所以在 Linux 的系統中使用文字編輯器來編輯你的Linux參數配置文件,在 Linux 的世界中,絕大部分的配置文件都是以 ASCII 的純文本形態存在,因此利用簡單的文字編輯軟件就能夠修改設置.所有的Unix L…

    Linux干貨 2016-08-11
  • 機器學習排序

     從使用的數據類型,以及相關的機器學習技術的觀點來看,互聯網搜索經歷了三代的發展歷程。        第一代技術,將互聯網網頁看作文本,主要采用傳統信息檢索的方法。        第二代技術,利用互聯網的超文本結構,有效…

    Linux干貨 2015-12-15
  • netstat命令和ss命令

    詳解netstat命令和ss命令

    Linux干貨 2018-01-01
  • Linux之查找命令find簡介

    查找命令find簡介    Linux使用過程中難免會遇到查找功能,類似于Windows中的搜索功能,如果想要找某個文件在什么地方,什么格式的文件等等。在Linux中我們可以使用find、locate、which、whereis等命令。接下來我們就簡單說一下如何使用這幾個命令查找文件。 一、which which命令的作用是,在PATH變…

    Linux干貨 2015-05-18
  • 軟件包安裝與管理

    通過rpm命令和yum install以及源碼編譯安裝軟件

    2017-12-03
  • Linux中的用戶、組和權限的管理

    一、Linux的安全模型     在Linux中用戶登陸時必須提供用戶名和密碼(用戶是由root用戶創建的,最初的密碼也是root用戶設定的)。系統使用用戶和群組來控制使用者訪問文件和其他資源的權限。每一個文件都一定屬于一個用戶(一般該用戶就是文件的創造者)并與一個群組相關。每一個進程(處理程序)都會與一個用戶和群組關…

    Linux干貨 2016-08-07
欧美性久久久久