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

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

 

一、計劃任務:

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

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

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

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

二、at命令:

1at命令: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:當任務被完成之后,將給用戶發送郵件,即使沒有標準輸出

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

3at的時間格式:

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

4、at任務:

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這個文件的,需要手動建立)

4at的使用設置:

先尋找/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 * * * *   (每小時執行一次)

7anacron系統:運行計算機關機時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

9atcrontab使用格式的對比:

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 08:14
下一篇 2016-09-10 08:15

相關推薦

  • Centos6.5上搭建openvpn

    前言     為了方便遠程辦公時訪問公司的內部系統,如:svn、OA、wiki、禪道等等;通通在防火墻上做了端口映射。發現有時也不好用,所有開始弄OPENVPN。 openvpn簡介     官方網站:https://openvpn.net 打不開請爬墻   &nbsp…

    Linux干貨 2016-02-14
  • 馬哥教育網絡班21期+第八周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:也叫做橋接器,工作在OSI七層中第二層數據鏈路層,主要是用來連接兩個局域網的一種存儲或者轉發設備,它能將一個大的LAN分隔      為多個網段,也可以將多個LAN互聯為一個邏輯LAN,網橋是在數據層上實現的局域網互聯;即使…

    Linux干貨 2016-09-08
  • 文本處理工具之grep

                    文本處理工具之grep 一、grep的簡介 1、grep是一個文本過濾器的工具,它根據用戶指定的模式(pattern)對目標文本進行匹配檢查,并將匹配的行打印到標準輸出或輸出重定向。 2、模式:由文本字符或正則表達式組成 3、正則表達式分…

    2017-05-06
  • 根分區伸縮實驗

    眾所周知LVM是Linux環境下對 磁盤進行管理的一種機制。用戶在安裝Linux操作系統時,難以分配合適的硬盤空間,當一個分區存放不下某個文件時,這個文件因為文件系統的限制,也不能 跨越多個分區來存放。而遇到出現某個分區耗盡時,只有使用調整分區大小的工具。隨著LVM功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下可以方 便…

    Linux干貨 2015-05-27
  • 第十周:Linux系統啟動流程及shell腳本練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 一張圖足以說明一切: 2、為運行于虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;   (1) 為硬盤新建兩個主分區;并為其安裝grub;   (2) 為硬盤的第一個主分區提供內核和ramdisk文件;為第二個分區提供rootfs;   (3)…

    Linux干貨 2016-11-30
  • haproxy實現discuz論壇的動靜分離和負載均衡

    一、在cs2、cs3、cs4上安裝httpd [root@cs2 ~]# yum install httpd [root@cs3 ~]# yum install httpd [root@cs4 ~]# yum install httpd 二…

    Linux干貨 2016-06-05
欧美性久久久久