linux系統的web**在運營狀態時,我們常需要對**進行維護,例如檢視資源剩餘並做出響應、日誌分割、資料整理,在特定狀態執行特定任務等等,這些都會需要linux能實現自動執行某些任任務。本篇博文介紹如何進行常見的linux自動化任務。
實現「自動化」有如下好處:
1.節省人力,乙個指令碼就夠了。
2.在夜晚自動執行可以避開**流量高峰期,不影響**白天的效率。
3.準確,設定完善的情況下,不會出差錯。
4.當然最重要的還是省心了,不用頻繁的敲某些命令了。
開機啟動應該是我們很經常的需求了,我們常需要在開機時就自動執行某些命令來開啟服務,程序等,有了它我們不必再在每次開機時輸入同一堆命令。
chkconfig命令
使用chkconfig命令可以在設定在不同啟動級別下啟動特定的服務或是程式。
先說一下linux的執行級別:
1.等級0表示:表示關機
2.等級1表示:單使用者模式
3.等級2表示:無網路連線的多使用者命令列模式
4.等級3表示:有網路連線的多使用者命令列模式
5.等級4表示:不可用
6.等級5表示:帶圖形介面的多使用者模式
7.等級6表示:重新啟動
chkconfig的命令如下:
chkconfig --list //命令檢視已設定的開啟自啟動列表。rc.d檔案的編輯***d 0:off 1:off 2:on ... 6:off //list的結果,表示在***d服務在啟動級別為2 3 4 5 的情況下會自動啟動。
chkconfig --add ***d//向任務列表中新增乙個***d服務
chkconfig [--level 1/2/../6] ***d on/off//設定***d用服務在n狀態為開/關,內省略則在2345級別開啟
chkconfig --del ***d //將任務列表中的***d服務刪除
我們用vim rc.local編輯 rc.local檔案,來定製自己的自啟計畫。命令十分簡單,就像平常在操作一樣。如/usr/local/apache/bin/apachectl start表示開機自啟動apache伺服器。
at是乙個簡單的功能簡單的定時任務程式,它只能進行一次性的定時任務,其用法如下:
#at time //at加時間啟動at命令其time的常見形式如下at>operation //輸入要執行的操作
at>ctrl+d //按ctrl+d退出命令編輯
at h:m tomorrow //第二天的h點m分我們也可以在/var/spool/at檔案中檢視at的當前命令。還需要注意的是,linux預設atd程序關閉狀態,需要手動開啟。at now + n minutes/hours/days/weeks //在n分/時/天/週後
at midnight //在午夜=-=
at h:m pm/am //在當天上午/下午的h點m分
linux內建的cron程序能幫我們實現這些需求,cron搭配shell指令碼,非常複雜的指令也沒有問題。
cron介紹
cron守護程序是乙個由實用程式和配置檔案組成的小型子系統,在幾乎所有類 unix 系統上都可以找到某種風格的cron,我們可以用ps aux|grep cron找到crond這個守護程序。
我們經常使用的是crontab命令是cron table的簡寫,它是cron的配置檔案,也可以叫它作業列表,我們可以在以下資料夾內找到相關配置檔案。
1./var/spool/cron/ 目錄下存放的是每個使用者包括root的crontab任務,每個任務以建立者的名字命名
2./etc/crontab 這個檔案負責排程各種管理和維護任務。
3./etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或指令碼。
4.我們還可以把指令碼放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目錄中,讓它每小時/天/星期、月執行一次。
crontab的使用
我們常用的命令如下:
crontab [-u username] //省略使用者表表示操作當前使用者的crontab我們用crontab -e進入當前使用者的工作表編輯,是常見的vim介面。每行是一條命令。-e (編輯工作表)
-l (列出工作表裡的命令)
-r (刪除工作作)
crontab的命令構成為時間+動作,其時間有分、時、日、月、周五種,操作符有
1.*取值範圍內的所有數字
2./每過多少個數字
3.-從x到z
4.,雜湊數字
以下是幾個例子。
時間 注釋配合簡單的shell指令碼0 0 25 12 * //在12月25日的0時0分
*/5 * * * * //每過5分鐘
* 4-6 * * * //每天的4 5 6點
* * * * 2,5 //每週二和周五
如果我們的命令有邏輯判斷等非常複雜的操作時,再直接編輯crontab就有點困難了,這時,我們可以使用shell指令碼。其來歷,分類定義與題不符,不再多說,我們直接說它的用法。
我們用vim /usr/sh/test.sh來使用vim編輯乙個shell指令碼
#!/bin/sh //宣告開始shell指令碼然後crontab -e編輯crontab,新增*/5 * * * * /usr/sh/test.sh每隔五分鐘執行一次test.sh指令碼,也可以用 /phppath/php /filepath/test.php 來用php程序來執行php程式。如果大家對於學習python有任何問題,學習方法,學習路線,如何學習有效率的問題,可以隨時來諮詢我,或者缺少系統學習資料的,我做這行年頭比較久,自認為還是比較有經驗的,可以幫助大家提出建設性建議,這是我的python交流qun:785128166,有任何問題可以隨時來諮詢我。a = "hello world" //定義乙個shell變數
echo $a //熟悉的echo,輸出a變數
軟體測試之自動化測試
自動化測試的優勢 能夠極大地提公升測試的效率,測試人員可以迅速地在指定平台部署測試指令碼且對相應功能進行測試。弱化 了軟體測試人員個體差異對測試結果的影響。提高整個測試團隊的技能水平。自動化測試的缺陷 自動化測試的缺陷在於 總是按照既定的流程往下走,不能像人一樣隨機應變。一旦功能發生變動,就需要重新...
軟體測試自動化
只有當系統的介面元素不會頻繁的變化 系統功能基本穩定,已經通過一至兩輪的手工測試,確定系統不會存在重大缺陷時,才可以考慮自動化的實施。使用自動化測試工具代替手工完成一些測試任務,現在國內主流的測試工具是loadrunner 和qtp。lr 效能測試工具 和qtp 自動化測試工具 的區別 1 lr 基...
自動化測試之六 自動化測試模型
from selenium import webdriver chrome driver path r c users administrator envs selenuimautotest lib site packages selenium webdriver chrome chromedriv...