進程管理(二)之計劃任務

進程管理(二)之計劃任務

 

一、計劃任務:

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

1at:跟一個時間點,到點了自動運行指定的任務

2batch:系統自行選擇空閑時間去執行此處指定的任務

2、周期性運行某任務:cron

二、at命令:

1、at命令:at [option] TIME

blob.png

注:當輸入完成后,使用Ctrl+d結束,不能使用Ctrl+c 。

2、常用選項:

-V 顯示版本信息:

blob.png

-l: 列出指定隊列中等待運行的作業;相當于atq

blob.png

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

-c: 查看具體作業任務

-f /path/from/somefile:從指定的文件中讀取任務

-m:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出

注意:作業執行命令的結果中的標準輸出和錯誤以郵件通知給相關用戶

3、at的時間格式:

noon(中午); midnight(子夜,凌晨整點); teatime(午茶時間,即下午四點)(4pm);tomorrow

now+#{minutes,hours,days, OR weeks}

1)在今日的HH:MM 進行,若該時刻已過,則明天此時執行任務:HH:MM 02:00

2)規定在某年某月的某一天的特殊時刻進行該項任務:HH:MM YYYY-MM-DD 04:00 2016-09-20

3)規定在未來某個時間點執行該項任務:HH:MM[am|pm] [Month] [Date]

04pm March 17   17:20 tomorrow

4HH:MM[am|pm] + number [minutes|hours|days|weeks],在某個時間點再加幾個時間后才進行該項任務:now + 5 minutes 04pm + 3 days

4at任務:

1、執行方式:1)交互式2)輸入重定向3at -f 文件

blob.png

依賴與atd服務,需要啟動才能實現at任務

blob.png

2、at隊列存放在/var/spool/at目錄中(機器關機也不會丟失,但如果任務沒有正常執行,則在第二天的時間點執行)

blob.png

刪除at計劃任務:

blob.png

blob.png

3、通過/etc/at.{allow,deny}控制用戶是否能執行at任務(系統正常情況下是沒有at.allow這個文件的,需要手動建立)

4、at的使用設置:

先尋找/etc/at.allow (相當于白名單)文件,文件中的使用者才能使用at ,沒有在這個文件中的使用者則不能使用at (即使沒有寫在at.deny 當中);如果/etc/at.allow 不存在,就尋找/etc/at.deny(相當于黑名單) 這個文件,若寫在這個at.deny 的使用者則不能使用at ,而沒有在這個at.deny 文件中的使用者則可使用at 命令;如果兩個文件都不存在,只有root 可以使用at 這個命令。

三、周期性任務計劃cron

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

CentOS 7

blob.png

CentOS 6

blob.png

2、相關的程序包:

cronie: 主程序包,提供crond守護進程及相關輔助工具

cronie-anacroncronie的補充程序;用于監控cronie任務執行狀況;如cronie中的任務在過去該運行的時間點未能正常運行,則anacron會隨后啟動一次此任務

crontabs:包含CentOS提供系統維護任務

3、計劃任務:

1)系統cron任務:系統維護作業

/etc/crontab

    blob.png

     系統的計劃任務: /etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 腳本

/etc/cron.daily/腳本

/etc/cron.weekly/腳本

/etc/cron.monthly/腳本

     blob.png

2)用戶cron任務:

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的控制是一樣的。

注意:運行結果的標準輸出和錯誤以郵件通知給相關用戶

(1) COMMAND > /dev/null

(2) COMMAND &> /dev/null

對于cron任務來講,%有特殊用途;如果在命令中要使用%,則需要轉義;不過,如果把%放置于單引號中,也可以不用轉義

4、日志:/var/log/cron

5、時間表示格式:

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

     # 0  0  1  * * 每月的1號凌晨零點

(2) * :給定時間點上有效取值范圍內的所有值,表示“每

     # 30  0  20  *  * 每月的20號凌晨零點30分(有效時間如30分,每月的有效日20天)

(3) 離散取值:#,#,#   如:0  0  1,10,20  * *  每月的1號、10號、20號的凌晨零點

(4) 連續取值:#-#    如:0  0  10-20  * *  每月的10號到20號的凌晨零點

(5) 在指定時間范圍上,定義步長:/# ,#即為步長

     */20  0  1  * * 每月的1號凌晨零點每二十分鐘執行一次

6、系統默認設置:

  @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 * * * *   (每小時執行一次)

7、anacron系統:運行計算機關機時cron不運行的任務,CentOS6.0以后版本取消anacron服務,由crond服務管理。

配置文件:/etc/anacrontab ;負責執行/etc/ cron.daily /etc/cron.weekly /etc/cron.monthly中系統任務;/etc/cron.hourly//cron.d/0hourly執行

blob.png

8、管理臨時文件:

rhel6.0使用/etc/cron.daily/tmpwatch定時清除臨時文件

 rhel7.0使用systemd-tmpfiles-setup服務實現

 配置文件:

 /etc/tmpfiles.d/*.conf

 /run/tmpfiles.d/*.conf

 /usr/lib/tmpfiles/*.conf

 /usr/lib/tmpfiles.d/tmp.conf

 命令:systemd-tmpfiles –clean|remove|create configfile

9、atcrontab使用格式的對比:

at

crontab

Create

at   time

crontab   -e

List

at   -l

crontab   -l

Details

at   -c #(任務計劃編號)

N/A

Remove

at   -d #(任務計劃編號)

crontab   -r

Edit

N/A

crontab   -e

注:沒有被重定向的輸出會被郵寄給用戶;根用戶(root)能夠修改其它用戶的作業;root修改或者刪除其他用戶的任務計劃,命令#crontab -e -u username

10 如何在秒級別運行任務?

* * * * * for min in 0 1 2; do echo "hi"; sleep 20; done

sleep命令:s: , 默認;m: 分;h: 小時;d:

例題: 

1、每4小時備份一次/etc目錄至/backup目錄中,保存的文件名稱格式為“etc-yyyy-mm-dd-HH.tar.xz

blob.png

2、每周2, 4, 7備份/var/log/messages文件至/logs目錄中,文件名形如“messages-yyyymmdd”

blob.png

3、每兩小時取出當前系統/proc/meminfo文件中以SM開頭的信息追加至/tmp/meminfo.txt文件中

blob.png

4、工作日時間,每10分鐘執行一次磁盤空間檢查,一旦發現任何分區利用率高于80%,就執行wall警報

blob.png

blob.png

 

原創文章,作者:Aaron_wang,如若轉載,請注明出處:http://www.www58058.com/44652

(0)
Aaron_wangAaron_wang
上一篇 2016-09-10
下一篇 2016-09-10

相關推薦

  • Linux磁盤及文件系統

    Linux磁盤及文件系統 一、硬盤 硬盤接口 PATA(Paralled Advanced Technology Attachment,并行的先進技術規范),也叫IDE(Integrated Drive Eelectronics,集成電路驅動設備),是作為一種簡單而廉價的接口而開發的。速度中等,容量大而且非常便宜。 串行ATA接口SATA(Serial AT…

    Linux干貨 2016-09-19
  • LB Cluster:lvs

    Linux Cluster: Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統; Linux Cluster類型: LB:Load Balancing,負載均衡; HA:High Availiablity,高可用; A=MTBF/(MTBF+MTTR) (0,1):90%, 95%, 99%, 99.5%, 99.9%, 99.99%, …

    Linux干貨 2017-06-24
  • ?磁盤管理{分區表備份與恢復;修復fstab記錄錯誤;制作swap分區;磁盤配額演示;}

    磁盤管理{ 分區表備份與恢復;錯誤fstab修復;swap分區;磁盤配額;}

    Linux干貨 2016-09-04
  • GlusterFS測試報告-02(結合samba為windows提供服務)

    在掛載glusterFS的客戶機的目錄下,使用samba分享給windows機器使用 1、samba服務的安裝 [root@client01 ~]# yum -y install samba [root@client01 ~]# /etc/init.d/smb restart S…

    Linux干貨 2016-07-22
  • Linux基礎知識(三)-用戶管理組管理,正則grep,文本處理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中 5、取出當前主機的IP…

    Linux干貨 2016-10-09
  • shell編程基礎一(多種方法求值1+2+..+100)

    #SHELL編程基礎一(多種方法求值1+2+..+100)##為什么要學好shell shell腳本語言是實現linux系統管理及自動化運維所必備的重要工具,linux系統的底層及基礎應用軟件的核心大都涉及shell腳本的內容。 每一個合格的linux系統管理員或運維工程師,都需要能夠熟練地編寫shell腳本語言,并能夠閱讀系統及各類軟件…

    Linux干貨 2017-08-26
欧美性久久久久