這篇文章主要講解了“l(fā)inux的自動(dòng)化怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“l(fā)inux的自動(dòng)化怎么實(shí)現(xiàn)”吧!
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比德城網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式德城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋德城地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
開(kāi)機(jī)啟動(dòng)應(yīng)該是我們很經(jīng)常的需求了,我們常需要在開(kāi)機(jī)時(shí)就自動(dòng)執(zhí)行某些命令來(lái)開(kāi)啟服務(wù),進(jìn)程等,有了它我們不必再在每次開(kāi)機(jī)時(shí)輸入同一堆命令。
使用chkconfig命令可以在設(shè)置在不同啟動(dòng)級(jí)別下啟動(dòng)特定的服務(wù)或是程序。
先說(shuō)一下linux的運(yùn)行級(jí)別:
等級(jí)0表示:表示關(guān)機(jī)
等級(jí)1表示:?jiǎn)斡脩裟J?/p>
等級(jí)2表示:無(wú)網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)3表示:有網(wǎng)絡(luò)連接的多用戶命令行模式
等級(jí)4表示:不可用
等級(jí)5表示:帶圖形界面的多用戶模式
等級(jí)6表示:重新啟動(dòng)
chkconfig的命令如下:
chkconfig --list //命令查看已設(shè)置的開(kāi)啟自啟動(dòng)列表。
xxxd 0:off 1:off 2:on ... 6:off //list的結(jié)果,表示在xxxd服務(wù)在啟動(dòng)級(jí)別為2 3 4 5 的情況下會(huì)自動(dòng)啟動(dòng)。
chkconfig --add xxxd//向任務(wù)列表中添加一個(gè)xxxd服務(wù)
chkconfig [--level 1/2/../6] xxxd on/off//設(shè)置xxxd用服務(wù)在n狀態(tài)為開(kāi)/關(guān),[]內(nèi)省略則在2345級(jí)別開(kāi)啟
chkconfig --del xxxd //將任務(wù)列表中的xxxd服務(wù)刪除
也可以直接編輯/etc/rc.d/目錄下的文件來(lái)實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)。此目錄下有很多文件,rcn.d是在啟動(dòng)狀態(tài)為n的情況下的啟動(dòng)文件夾,rc、rc.sysinit、init.d都是系統(tǒng)的模塊或系統(tǒng)設(shè)置的自啟文件[夾]。
我們用vim rc.local 編輯 rc.local文件,來(lái)定制自己的自啟計(jì)劃。命令十分簡(jiǎn)單,就像平常在操作一樣。如/usr/local/apache/bin/apachectl start表示開(kāi)機(jī)自啟動(dòng)apache服務(wù)器。
at是一個(gè)簡(jiǎn)單的功能簡(jiǎn)單的定時(shí)任務(wù)程序,它只能進(jìn)行一次性的定時(shí)任務(wù),其用法如下:
#at time //at加時(shí)間啟動(dòng)at命令
at>operation //輸入要執(zhí)行的操作
at>Ctrl+D //按Ctrl+D退出命令編輯
其time的常見(jiàn)形式如下
at H:m tomorrow //第二天的H點(diǎn)m分
at now + n minutes/hours/days/weeks //在n分/時(shí)/天/周后
at midnight //在午夜=-=
at H:m pm/am //在當(dāng)天上午/下午的H點(diǎn)m分
我們也可以在/var/spool/at文件中查看at的當(dāng)前命令。還需要注意的是,linux默認(rèn)atd進(jìn)程關(guān)閉狀態(tài),需要手動(dòng)打開(kāi)。
linux內(nèi)置的cron進(jìn)程能幫我們實(shí)現(xiàn)這些需求,cron搭配shell腳本,非常復(fù)雜的指令也沒(méi)有問(wèn)題。
cron守護(hù)進(jìn)程是一個(gè)由實(shí)用程序和配置文件組成的小型子系統(tǒng),在幾乎所有類 UNIX 系統(tǒng)上都可以找到某種風(fēng)格的cron,我們可以用ps aux|grep cron找到crond這個(gè)守護(hù)進(jìn)程。
我們經(jīng)常使用的是crontab命令是cron table的簡(jiǎn)寫,它是cron的配置文件,也可以叫它作業(yè)列表,我們可以在以下文件夾內(nèi)找到相關(guān)配置文件。
/var/spool/cron/ 目錄下存放的是每個(gè)用戶包括root的crontab任務(wù),每個(gè)任務(wù)以創(chuàng)建者的名字命名
/etc/crontab 這個(gè)文件負(fù)責(zé)調(diào)度各種管理和維護(hù)任務(wù)。
/etc/cron.d/ 這個(gè)目錄用來(lái)存放任何要執(zhí)行的crontab文件或腳本。
我們還可以把腳本放在/etc/con.hourly、/etc/con.daily、/etc/con.weekly、/etc/con.monthly目錄中,讓它每小時(shí)/天/星期、月執(zhí)行一次。
我們常用的命令如下:
1 2 3 4 | crontab
[-u username]
//
省略用戶表表示操作當(dāng)前用戶的
crontab
-e (編輯工作表)
-l (列出工作表里的命令)
-r (刪除工作作)
|
我們用crontab -e進(jìn)入當(dāng)前用戶的工作表編輯,是常見(jiàn)的vim界面。每行是一條命令。
crontab的命令構(gòu)成為 時(shí)間+動(dòng)作,其時(shí)間有分、時(shí)、日、月、周五種,操作符有
* 取值范圍內(nèi)的所有數(shù)字
/ 每過(guò)多少個(gè)數(shù)字
- 從X到Z
,散列數(shù)字
以下是幾個(gè)例子。
時(shí)間 注釋
1 2 3 4 | 0 0 25 12 *
//
在12月25日的0時(shí)0分
*
/5
* * * *
//
每過(guò)5分鐘
* 4-6 * * *
//
每天的4 5 6點(diǎn)
* * * * 2,5
//
每周二和周五
|
配合簡(jiǎn)單的shell腳本
如果我們的命令有邏輯判斷等非常復(fù)雜的操作時(shí),再直接編輯crontab就有點(diǎn)困難了,這時(shí),我們可以使用shell腳本。其來(lái)歷,分類定義與題不符,不再多說(shuō),我們直接說(shuō)它的用法。
我們用vim /usr/sh/test.sh來(lái)使用vim編輯一個(gè)shell腳本
1 2 3 | #!/bin/sh //聲明開(kāi)始shell腳本
a =
"hello world"
//
定義一個(gè)shell變量
echo
$a
//
熟悉的
echo
,輸出a變量
|
然后crontab -e編輯crontab,添加 */5 * * * * /usr/sh/test.sh每隔五分鐘運(yùn)行一次test.sh腳本,也可以用 /phppath/php /filepath/test.php 來(lái)用php進(jìn)程來(lái)執(zhí)行php程序。
感謝各位的閱讀,以上就是“l(fā)inux的自動(dòng)化怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)linux的自動(dòng)化怎么實(shí)現(xiàn)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!