不看后悔的Linux生產(chǎn)服務(wù)器Shell腳本分享_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、不看后悔的linux生產(chǎn)服務(wù)器shell腳本分享作為一名linux/unix系統(tǒng)管理員,我常常碰到人問這個問題:shell能做什么?)、服務(wù)狀態(tài)監(jiān)控、ftp遠程備份等。對于這些任 務(wù),shell的強大是大家都公認的,這也是每一個linux/unix系統(tǒng)管理員的基本之一?,F(xiàn)在在windows 2008里也浮現(xiàn)了powershell的身影,非常不錯。 下面我會用我的線上服務(wù)器的shell腳本舉例來讓大家了解shell及其用途。 【名目】 mysql的熱備份腳本 用ftp同步服務(wù)器 keepaliv的監(jiān)控切換腳本 svn的版本庫的批量備份 自動監(jiān)控adsl并重拔號 linux批量生成生成帳戶(10月

2、11日更新) 測試局域網(wǎng)內(nèi)主機是否alive(10月11日更新) 點擊下方的子頁面標題,進入對應(yīng)的shell腳本頁面舉行閱讀。 一、mysql的熱備份腳本 這是mysql的備份方式之一,腳本如下: !/bin/bash path=/usr/local/sbin:/usr/bin:/bin the directory of backup backdir=/usr/mysql_backup the password of mysql rootpass=password remake the directory of backup -rf $backdir -p $backdir get the n

3、ame of database dblist= -p /var/lib/mysql / -d / 偷瞄了下我同事寫腳本的方式,發(fā)覺他挺直將dblist一個個手動敲上去了 數(shù)據(jù)庫少的狀況是可以的,假如數(shù)據(jù)庫是成百以上呢,呵呵 backup with database for dbname in $dblist do mysqlhotcopy $dbname -u root -p $rootpass $backdir logger -t mysqlhotcopy done 許多系統(tǒng)管理員喜愛用mysqlmp -opt來備份數(shù)據(jù)庫,因為比較容易,我這里就不重復(fù)了。 二、用ftp同步服務(wù)器 許多系統(tǒng)管

4、理員喜愛用rsy同步二臺服務(wù)器之間的數(shù)據(jù),但我們更喜愛用ftp來實現(xiàn),其益處是: ftp比r更能耗盡帶寬,所以它更適合同步數(shù)據(jù)庫(尤其是幾百g的數(shù)據(jù)) 配置起來相當(dāng)便利,尤其是用pured rsync的優(yōu)勢是可以迅速海量同步小文件,比如二級名目或三級名目下的批量等 基本上ftp和rsync同步各有優(yōu)勢,看系統(tǒng)管理員的取舍了。以下是本部分要介紹的ftp同步的shell腳本方式: ftpolddate= +%y-%m-%d -d '-60 days' 在ftp定義60天間的日期變量,是為了在ftp端保存60天的數(shù)據(jù),逾期刪除。 host=99 ftp_user

5、name=db ftp_password=password $backdir/$date ftp -i -n -v ! open $host user $ftp_username $ftp_password bin cd $ftpolddate ete * cd . $ftpolddate mkdir $date cd $date mput * ! 三、keepalived的監(jiān)控切換腳本 實現(xiàn)功能如下:針對nginx+keepalived,編寫nginx監(jiān)控腳本nginx_p.sh,放置在后臺向來監(jiān)控nginx進程;如進 程消逝,嘗試重啟nginx,如是失敗則立刻停掉本機的keepalived

6、服務(wù),讓另一臺器接手。此腳本具體內(nèi)容如下: !/bin/bash while : do nginxpid=ps -c nginx -no-header -l if $nginxpid -eq 0 ;then /usr/local/nginx/sbin/nginx 5 if $nginxpid -eq 0 ;then /etc/init.d/keepalived stop fi fi sleep 5 done 四、svn的版本庫的批量備份 實現(xiàn)其功能蠻容易,主要是用了svnadmin hotcopy,這東東功能很強大,我常常用于svn的版本庫的轉(zhuǎn)移(順便說一句,上次不當(dāng)心誤操作將庫刪光了,很輕松

7、的用svnadmin hotcopy將其復(fù)原過來了)。 for project in test project svntest do cd $svndir $svnadmin hotcopy $project $backdir/$date/$project -clean-logs cd $backdir/$date tar zcvf $project_svn_$date.tar.gz $project /dev/null rm -rf $project echo repository: $project backup done into $backdir/$date/ successful!

8、$logfile /bin/sleep 2 done 五、自動監(jiān)控adsl并重拔號的shell腳本 公司辦公室的adsl愛掉線,一掉的話網(wǎng)關(guān)的gateway就沒了。因此編寫了下列腳本: !/bin/bash while : do if route tail -l grep then /dev/null else adsl-stop adsl-start fi sleep 10 done 執(zhí)行腳本辦法: nuhup sh route.sh 注重前面要用上nohup,這樣避開root用戶logout時此腳本也退誕生效的問題。 六、linux批量生成生成帳戶腳本 此腳本應(yīng)用于生產(chǎn)環(huán)境

9、下生成帳戶,也可生成成百上千個密碼相同的帳戶。腳本代碼如下: !/bin/bash for name in tom jerry jane do -stdin $name done 自己用法的時候,用自己需要的帳戶名列表替換掉這個代碼范例里的tom jerry joe jane等字段即可。密碼都是redhat,可以讓用戶之后自己更改。 七、測試局域網(wǎng)內(nèi)主機是否alive的小腳本 此腳本用于檢查00到00之間的主機是否alive。腳本如下: !/bin/bash checks to see if hosts 00-00 are alive for n in 100.200; do host=192.168.1.$n -c2 $host /dev/null if $? = 0 ; then echo $host is up else echo $host is down fi don

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論