linux的「自動化」

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

linux系統的web網站在運營狀態時,咱們常須要對網站進行維護,例如查看資源剩餘並作出響應、日誌分割、數據整理,在特定狀態執行特定任務等等,這些都會須要linux能實現自動執行某些任任務。本篇博文介紹如何進行常見的linux自動化任務。
php

實現「自動化」有以下好處:linux

節省人力,一個腳本就夠了。web

在夜晚自動執行能夠避開網站流量高峯期,不影響網站白天的效率。shell

準確,設置完善的狀況下,不會出差錯。apache

固然最重要的仍是省心了,不用頻繁的敲某些命令了。vim

開機啓動

開機啓動應該是咱們很常常的需求了,咱們常須要在開機時就自動執行某些命令來開啓服務,進程等,有了它咱們沒必要再在每次開機時輸入同一堆命令。服務器

chkconfig命令

使用chkconfig命令能夠在設置在不一樣啓動級別下啓動特定的服務或是程序。網絡

先說一下linux的運行級別:ide

等級0表示:表示關機網站

等級1表示:單用戶模式

等級2表示:無網絡鏈接的多用戶命令行模式

等級3表示:有網絡鏈接的多用戶命令行模式

等級4表示:不可用

等級5表示:帶圖形界面的多用戶模式

等級6表示:從新啓動

chkconfig的命令以下:

chkconfig --list //命令查看已設置的開啓自啓動列表。

xxxd 0:off 1:off 2:on ... 6:off //list的結果,表示在xxxd服務在啓動級別爲2 3 4 5 的狀況下會自動啓動。 

chkconfig --add xxxd//向任務列表中添加一個xxxd服務

chkconfig [--level 1/2/../6] xxxd on/off//設置xxxd用服務在n狀態爲開/關,[]內省略則在2345級別開啓

chkconfig --del xxxd //將任務列表中的xxxd服務刪除

rc.d文件的編輯

也能夠直接編輯/etc/rc.d/目錄下的文件來實現開機自啓動。此目錄下有不少文件,rcn.d是在啓動狀態爲n的狀況下的啓動文件夾,rc、rc.sysinit、init.d都是系統的模塊或系統設置的自啓文件[夾]。

咱們用vim rc.local 編輯 rc.local文件,來定製本身的自啓計劃。命令十分簡單,就像日常在操做同樣。如/usr/local/apache/bin/apachectl start表示開機自啓動apache服務器。

at實現定時任務

at是一個簡單的功能簡單的定時任務程序,它只能進行一次性的定時任務,其用法以下:

#at time      //at加時間啓動at命令

at>operation    //輸入要執行的操做

at>Ctrl+D      //按Ctrl+D退出命令編輯

其time的常見形式以下

at H:m tomorrow     //次日的H點m分

at now + n minutes/hours/days/weeks  //在n分/時/天/周後

at midnight         //在午夜=-=

at H:m pm/am        //在當天上午/下午的H點m分

咱們也能夠在/var/spool/at文件中查看at的當前命令。還須要注意的是,linux默認atd進程關閉狀態,須要手動打開。

crontab實現定時任務

linux內置的cron進程能幫咱們實現這些需求,cron搭配shell腳本,很是複雜的指令也沒有問題。

cron介紹

cron守護進程是一個由實用程序和配置文件組成的小型子系統,在幾乎全部類 UNIX 系統上均可以找到某種風格的cron,咱們能夠用ps aux|grep cron找到crond這個守護進程。

咱們常常使用的是crontab命令是cron table的簡寫,它是cron的配置文件,也能夠叫它做業列表,咱們能夠在如下文件夾內找到相關配置文件。

/var/spool/cron/ 目錄下存放的是每一個用戶包括root的crontab任務,每一個任務以建立者的名字命名

/etc/crontab 這個文件負責調度各類管理和維護任務。

/etc/cron.d/ 這個目錄用來存聽任何要執行的crontab文件或腳本。

咱們還能夠把腳本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目錄中,讓它每小時/天/星期、月執行一次。

crontab的使用

咱們經常使用的命令以下:

1

2

3

4

crontab       [-u username]      //  省略用戶表表示操做當前用戶的  crontab

      -e      (編輯工做表)

      -l      (列出工做表裏的命令)

      -r      (刪除工做做)

咱們用crontab -e進入當前用戶的工做表編輯,是常見的vim界面。每行是一條命令。

crontab的命令構成爲 時間+動做,其時間有分、時、日、月、週五種,操做符有

* 取值範圍內的全部數字

/ 每過多少個數字

- 從X到Z

,散列數字

如下是幾個例子。

時間                  註釋

1

2

3

4

0 0 25 12 *       //  在12月25日的0時0分 

*  /5       * * * *       //  每過5分鐘

* 4-6 * * *       //  天天的4 5 6點

* * * * 2,5       //  每週二和週五

配合簡單的shell腳本

若是咱們的命令有邏輯判斷等很是複雜的操做時,再直接編輯crontab就有點困難了,這時,咱們能夠使用shell腳本。其來歷,分類定義與題不符,再也不多說,咱們直接說它的用法。

咱們用vim /usr/sh/test.sh來使用vim編輯一個shell腳本

1

2

3

#!/bin/sh           //聲明開始shell腳本

a =   "hello world"         //  定義一個shell變量

echo       $a               //  熟悉的  echo  ,輸出a變量

而後crontab -e編輯crontab,添加 */5 * * * * /usr/sh/test.sh每隔五分鐘運行一次test.sh腳本,也能夠用 /phppath/php /filepath/test.php 來用php進程來執行php程序。

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索