人人都能學(xué)會的企業(yè)SHELL編程_第1頁
人人都能學(xué)會的企業(yè)SHELL編程_第2頁
人人都能學(xué)會的企業(yè)SHELL編程_第3頁
人人都能學(xué)會的企業(yè)SHELL編程_第4頁
人人都能學(xué)會的企業(yè)SHELL編程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

人人都能學(xué)會的SHELL編程目錄TOC\o"1-5"\h\zShell入門簡介 2Shell編程之變量詳解 3If條件語句學(xué)習 6使用if條件語句編寫MySQL備份腳本 8IF條件綜合Shell實戰(zhàn)腳本編寫 9循環(huán)語句for 15循環(huán)語句while 16Until循環(huán)語句 17Case選擇語句 18select選擇語句 19Shell編程函數(shù)講解 19Shell數(shù)組編程 21Shell編程之a(chǎn)wk、sed命令案例分析 22全備和增量備份Linux系統(tǒng)腳本 23Shell編程之系統(tǒng)硬件信息數(shù)據(jù)庫收集 26Shell 編程之磁盤報警高級腳本 28Shell 編程之服務(wù)監(jiān)控檢查腳本 30Shell 編程之實戰(zhàn)WEB界面展示一 30Shell 編程之實戰(zhàn)WEB界面展示二 30Shell 編程之學(xué)習心得分享及拓展 30Shell入門簡介說到Shell編程,我想很多從事Linux運維工作的朋友都不陌生,都對Shell有基本的了解,可能大家剛開始接觸 Shell的時候,有各種想法?能不能不學(xué)?高大上?到底是浮云?還是神馬?很難啊?我想告訴大家的是,大家有這些想法一點都不覺得驚訝,為什么?這些都很正常,對于任何一件事情在未開始之前,肯定會有總總假設(shè),那我今天想說的是,學(xué)完人人都會Shell編程后,我們會覺得一切的Shell都是浮云,我們每個人都能很好的使用它,駕馭它,更好的完成我們?nèi)粘_\維的工作。曾經(jīng)有人說過,玩Linux不知道Shell,那就是不懂Linux;現(xiàn)在細細品味確實是這樣。為了讓更多的人能接觸Shell、了解Shell,使用Shell,所以今天開設(shè)了這樣一個網(wǎng)絡(luò)課程,讓我們的Shell飛起來。好的,其他不多說了,我們正式進入主題,什么是 Shell呢?Shell是操作系統(tǒng)的最外層,Shell可以合并編程語言以控制進程和文件,以及啟動和控制其它程序。shell通過提示您輸入,向操作系統(tǒng)解釋該輸入,然后處理來自操作系統(tǒng)的任何結(jié)果輸出來管理您與操作系統(tǒng)之間的交互。簡單來說 Shell就是一個用戶跟操作系統(tǒng)之間的一個命令解釋器。Shell是用戶與Linux操作系統(tǒng)之間溝通的橋梁。用戶可以輸入命令執(zhí)行,又可以利用Shell腳本編程去運行。LinuxShell種類非常多,常見的有: BourneShell(/usr/bin/sh 或/bin/sh)、BourneAgainShell(/bin/bash)、CShell(/usr/bin/csh)、KShell(/usr/bin/ksh)、ShellforRoot(/sbin/sh)等。不同的Shell語言的語法有所不同,所以不能交換使用。最常用的shell是Bash,也就是BourneAgainShell,由于易用和免費,Bash在日常工作中被廣泛使用,也是大多數(shù)Linux系統(tǒng)默認的Shell。接下來我們來寫一個簡單的shell腳本。(shell腳本一般文件名以.sh結(jié)尾,同時文件第一行定義該腳本為shell腳本)vifirst_shell.sh#!/bin/bash#ThisismyFirstshellecho“HelloWorld! ”這就是我們的第一個腳本,是不是很簡單呢,注解如下:#!/bin/bash// 表示定義該腳本是一個shell腳本(固定格式)。#ThisismyFirstshell// 這里的#號屬于注解,沒有任何的意義, SHELL不會解析它。echo“HelloWorld! ”//shell 腳本主命令,我們執(zhí)行這個腳本講看到 :HelloWorld!信息。腳本編寫完畢,如何來執(zhí)行呢,首先執(zhí)行 shell腳本需要執(zhí)行權(quán)限,賦予執(zhí)行權(quán)限:chmodo+xfirst_shell.sh然后./first_shell.sh 執(zhí)行即可;也可以直接使用命令執(zhí)行:/bin/shfirst_shell.sh ,顯示效果一樣。Shell編程之變量詳解Shell編程語言是非類型的解釋型語言,不像C++/JAVA語言編程時需要事先聲明變量,SHELL給一個變量賦值,實際上就是定義了變量,在Linux支持的所有shell中,都可以用賦值符號(=)為變量賦值。SHELLSHELL變量可分為兩類:局部變量和環(huán)境變量。局部變量只在創(chuàng)建它們的 shell腳本中使用。而環(huán)境變量則可以在創(chuàng)建它們的 shell及其派生出來的任意子進程中使用。有些變量是用戶創(chuàng)建的,其他的則是專用 shell變量。例如在腳本里面定義A=123,定義這樣一個變量,前面變量名,后面是變量的值。引用變量可以使用$A,把變量放在腳本里面會出現(xiàn)什么樣的效果呢?如下:#!/bin/bash#Authorwugk2014-06-10A=123echo“Printfvariablesequalis$A”執(zhí)行腳本:shtest.sh,結(jié)果將會顯示:Printfvariablesequalis123簡單的理解變量,相當于定義一個別名-名稱,引用的時候加上$符號就可以了。例如定義變量name=wuguangke執(zhí)行echo$name將會顯示wuguangkeSHELL常見的系統(tǒng)變量解析:$0當前程序的名稱$n當前程序的第n個參數(shù),n=1,2,…9$*當前程序的所有參數(shù)(不包括程序本身)$#當前程序的參數(shù)個數(shù)(不包括程序本身)$?命令或程序執(zhí)行完后的狀態(tài),一般返回 0表示執(zhí)行成功。$UID當前用戶的ID$PWD當前所在的目錄我們來測試一個常用變量的腳本:viauto_var.sh#!/bin/bash#autoprintvariables#bywugk2014-09echo-e'\033[32m \033[0m'echo"Thisis$0paramecho"This\$1is$1param!"echo"This\$2is$2param!"echo-e'\033[32m \033[0m'echo"This\$*is$*param!"echo"This\$#is$#param!"echo"This\$?is$?param!"echo緊接著我們來編寫一個簡單的echo打印菜單:#!/bin/bash#autoinstallhttpd#bywugk2014-09echo-e'\033[32m \033[0m'PREFIX二/usr/local/apache2/echo-e"\033[36mPleaseSelectInstallMenu:\033[0m"echoecho"1)官方下載Httpd文件包."echo"2)解壓apache源碼包."echo"3)編譯安裝Httpd服務(wù)器."echo"4)啟動HTTPD艮務(wù)器."echo-e'\033[32m \033[0m'echo-e'\033[32m \033[0m'sleep20If條件語句學(xué)習在LinuxShell編程中,if、for、while、case等條件流程控制語句用的非常多,把這些學(xué)好,對提升腳本的功力有非常大的幫助。下面將逐個來講解具體的用法:If條件判斷語句if(表達式)#if(VariableinArray)語句1else語句2fi案例一,測試數(shù)字大小#!/bin/shNUM=100if(($NUM>4));thenecho“thisnumis$NUMgreater4! ”fi案例二,測試目錄是否存在,不存在則新建(注意,中括號之間必須要空格)#!/bin/sh#judgedirexistechoelseechoThisDIRisexist,Pleaseexitfi邏輯運算符解析:-f 判斷文件是否存在eg:if[-ffilename]-d 判斷目錄是否存在eg:if[-ddir]-eq等于應(yīng)用于:整型比較-ne不等于應(yīng)用于:整型比較-lt小于應(yīng)用于:整型比較-gt大于應(yīng)用于:整型比較-le 小于或等于應(yīng)用于:整型比較-ge大于或等于應(yīng)用于:整型比較-a 雙方都成立(and)邏輯表達式-a邏輯表達式-o 單方成立(or)邏輯表達式-0邏輯表達式-z 空字符串案例三,多個條件測試判斷#!/bin/shscores=80if[[$scores-gt85]];then???echo"verygood!";elif[[$scores-gt75]];then???echo"good!";elif[[$scores-gt60]];then???echo"pass!";else???echo"nopass!"fi使用if條件語句編寫MySQ備份腳本a)自動備份Mysql數(shù)據(jù)庫腳本#!/bin/sh#autobackupmysql#wugk2012-12-12#DefinePATH定義變量BAKDIR二/data/backup/mysql/'date+%Y-%m-%d'MYSQLDB二webappMYSQLPW二backupMYSQLUSR二backup$UID為系統(tǒng)變量#mustuserootuserrunscripts 必須使用root$UID為系統(tǒng)變量if[$UID-ne0];thenechoThisscriptmustusetherootuser!!!sleep2exit0fi#DefineDIRandmkdirDIR判斷目錄是否存在,不存在則新建if[!-d$BAKDIR];thenmkdir-p$BAKDIRelseechoThisis$BAKDIRexists....fi#Usemysqldumpbackupmysql使用mysqldump備份數(shù)據(jù)庫/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d$MYSQLDB>$BAKDIR/webapp_db.sqlecho"Themysqlbackupsuccessfully"IF條件綜合Shell實戰(zhàn)腳本編寫通過if語句和之前變量的學(xué)習,今天我們將把我們所學(xué)的綜合在一起來講解一個實戰(zhàn)運維腳本,一鍵安裝LAMP環(huán)境的腳本:一鍵源碼安裝LAMP腳本,先分解腳本的各個功能:打印菜單:1) 安裝apacheWEB服務(wù)器2) 安裝MysqlDB服務(wù)器3) 安裝PHP服務(wù)器4) 整合LAMP架構(gòu)并啟動服務(wù)1、 Apache服務(wù)器安裝部署。2、 Mysql服務(wù)器的安裝。3、 PHP服務(wù)器安裝。4、 LAMP架構(gòu)的整合和服務(wù)啟動。/usr/local/apache2/bin/apachectlstartvihtdocs/index.php<?phpphpinfo();?>viauto」amp.sh 內(nèi)容如下:#!/bin/bash#autoinstallLAMP#bywugk2014-11#HttpddefinepathvariableH_PREFIX二/usr/local/apache2/#MySQLdefinepathvariableM_PREFIX=/usr/local/mysql/#PHPdefinepathvariableP_PREFIX=/usr/local/php5/echo-e'\033[32m \033[0m'echoif[-z"$1"];thenecho-e"\033[36mPleaseSelectInstallMenufollow:\033[0m"echo-e"\033[32m1)編譯安裝Apache服務(wù)器\033[1m"echo"2)編譯安裝MySQ服務(wù)器"echo"3)編譯安裝PHP服務(wù)器"echo"4)配置index.php并啟動LAMP服務(wù)"echo-e"\033[31mUsage:{/bin/sh$01|2|3|4|help}\033[0m"exitfiif[["$1"-eq"help"]];thenecho-e"\033[36mPleaseSelectInstallMenufollow:\033[0m"echo-e"\033[32m1) 編譯安裝Apache服務(wù)器\033[1m"echo"2) 編譯安裝MySQ服務(wù)器"echo"3) 編譯安裝PHP服務(wù)器"echo"4)配置index.php并啟動LAMP服務(wù)"echo-e"\033[31mUsage:{/bin/sh$01|2|3|4|help}\033[0m"exitfif*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*IlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII#lnstallhttpdwebserverif[["$1"-eq"1"]];thenwget-c$H_URL/$H_FILES&&tar-jxvf$H_FILES&&cd$H_FILES_DIR&&./configure--prefix=$H_PREFIXif[$?-eq0];thenmake&&makeinstallecho -e"\n\033[32m \033[0m"echo-e"\033[32mThe$H_FILES_DIRServerInstallSuccess!\033[0m"elseecho-e"\033[32mThe$H_FILES_DIRMakeorMakeinstallERROR,PleaseCheck……"exit0fifi#lnstallMysqlDBserverif[["$1"-eq"2"]];thenwget-c$M_URL/$M_FILES&&tar-xzvf$M_FILES&&cd$M_FILES_DIR&&yuminstallcmake-y;cmake.-DCMAKE_INSTALL_PREFIX=$M_PREFIX\-DMYSQL_UNIX_ADDR二/tmp/mysql.sock\-DMYSQL_DATADIR二/data/mysql\-DSYSCONFDIR=/etc\-DMYSQL_USER=mysql\-DMYSQL_TCP_PORT=3306\-DWITH_XTRADB_STORAGE_ENGINE=1\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITH_MYISAM_STORAGE_ENGINE=1\-DWITH_READLINE=1\-DENABLED_LOCAL_INFILE=1\-DWITH_EXTRA_CHARSETS=1\-DDEFAULT_CHARSET=utf8\-DDEFAULT_COLLATION=utf8_general_ci\-DEXTRA_CHARSETS=all\-DWITH_BIG_TABLES=1\-DWITH_DEBUG=0make&&makeinstall/bin/cpsupport-files/my-small.cnf/etc/my.conf/bin/cpsupport-files/mysql.server/etc/init.d/mysqldchmod+x/etc/init.d/mysqldchkconfig--addmysqldchkconfigmysqldonif[$?-eq0];thenmake&&makeinstallecho -e"\n\033[32m \033[0m"echo -e"\033[32mThe$M_FILES_DIRServer InstallSuccess!\033[0m"elseecho -e"\033[32mThe$M_FILES_DIRMakeorMakeinstallERROR,PleaseCheck "exit0fifi#InstallPHPserverif[["$1"-eq"3"]];thenwget-c$P_URL/$P_FILES&&tar-jxvf$P_FILES&&cd$P_FILES_DIR&&/configure --prefix=$P_PREFIX--with-config-file-path=$P_PREFIX/etc--with-mysql=$M_PREFIX--with-apxs2=$H_PREFIX/bin/apxsif[$?-eq0];thenmakeZEND_EXTRA_LIBS='-liconv'&&makeinstallecho -e"\n\033[32m \033[0m"echo -e"\033[32mThe$P_FILES_DIRServer Installecho -e"\033[32mThe$P_FILES_DIRServer InstallMakeinstallindex.html/g'"AddTypeMakeinstallindex.html/g'"AddTypeSuccess!\033[0m"elseecho -e"\033[32mThe$P_FILES_DIRMakeorERROR,PleaseCheck "exit0fifif*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*f*IlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIif[["$1"-eq"4"]];thensed-i '/DirectoryIndex/s/index.html/index.php$H_PREFIX/conf/httpd.conf$H_PREFIX/bin/apachectlrestartechoapplication/x-httpd-php.php">>$H_PREFIX/conf/httpd.confIP='ifconfigeth1|grep"Bcast"|awk'{print$2}'|cut-d:-f2'cat>$H_PREFIX/htdocs/index.php<<EOF<?phpphpinfo();?>EOFFi循環(huán)語句forFor變量in字符串do語句1done案例一,打印seq數(shù)字循環(huán)#!/bin/shforiin'seq15'doecho“NUMis$i”done案例二,求和1-100的值#!/bin/bash#autosum1100j=0for((i=1;iv=100;i++))doj='expr$i+$j'doneecho$j案例三,找到相關(guān)log,然后批量打包#!/bin/shforiin'find/var/log-name “*.logdotar-czf2014log.tgz$idone案例四,遠程主機批量傳輸文件:#!/bin/bash#autoscpfilesforclient#byauthorswugk2014foriin'seq100200'doDone案例五,遠程主機批量執(zhí)行命令:#!/bin/bash#autoscpfilesforclient#byauthorswugk2014foriin'seq100200'do‘Is/tmp'done循環(huán)語句whilewhile條件語句do語句1done案例一,while條件判斷數(shù)字#!/bin/shi=1;while[[$i-It10]];doecho$i;((i++));done;案例二,擴展講解linuxread命令read-p‘PleaseInputnumber: '案例三,while逐行讀取某個文件#!/bin/shwhilereadlinedoecho$line;done</etc/hosts綜合腳本編寫:Until循環(huán)語句until條件doactiondone直到滿足條件,才退出。否則執(zhí)行 action案例一,條件判斷數(shù)字#!/bin/sha=10;until[[$a-It0]];doecho$a;((a--));done;Case選擇語句case$arginpattern"語句155pattern2)語句255*)語句355esac案例一,創(chuàng)建選擇參數(shù)腳本#!/bin/shcase$1inmonitor_log)archive_log)*)echo"Usage:{$0monitor_log|archive_log|help}"55esacselect選擇語句Select一般用于選擇菜單的創(chuàng)建,可以配合PS3來做菜單的打印輸出信息。#!/bin/shPS3="Whatyoulikemostoftheopensourcesystem?"selectiinCentOSRedHatUbuntudoecho"YourSelectSystem:"$iDoneShell編程函數(shù)講解shell允許將一組命令集或語句形成一個可用塊,這些塊稱為 shell函數(shù),定義函數(shù)的格式:functionname(){command1name編寫一個Apache安裝函數(shù):#!/bin/bash#autoinstallLAMP#bywugk2014-11#HttpddefinepathvariableH_PREFIX二/usr/local/apache2/functionApache_install (){#lnstallhttpdwebserverif[["$1"-eq"1"]];thenwget-c$H_URL/$H_FILES&&tar-jxvf$H_FILES&&cd$H_FILES_DIR&&./configure--prefix=$H_PREFIXif[$?-eq0];thenmake&&makeinstallecho -e"\n\033[32m \033[0m"echo-e"\033[32mThe$H_FILES_DIRServerInstall Success!\033[0m"elseecho-e"\033[32mThe$H_FILES_DIRMakeorMakeinstallERROR,PleaseCheck……"exit0fifiApache」nstall直接調(diào)用函數(shù)就會去運行函數(shù)里面定義的代碼了。Shell數(shù)組編程數(shù)組,就是相同數(shù)據(jù)類型的元素按一定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,然后用編號區(qū)分他們的變量的集合,這個名字成為數(shù)組名,編號成為下標。今天這里我們來探討一維數(shù)組的定義、統(tǒng)計、引用和刪除等操作。首先來定義一個一維數(shù)組:A=(testltest2test3) ,定義數(shù)組一般以括號的方式來定義,數(shù)組的值可以隨機定義。如何來引用呢?echo${A[0]},代表引用第一個數(shù)組變量,結(jié)果會顯示 testl,數(shù)組引用從0開始,代表第一個數(shù)組,依次類推。echo${A[1]},代表引用第二個數(shù)組變量,結(jié)果會顯示 test2,數(shù)組引用也是從0開始計算的。如何顯示該數(shù)組所有參數(shù)呢?echo${A[@]}將顯示所有參數(shù)testltest2test3。如何顯示該數(shù)組參數(shù)個數(shù)呢? echo${#A[@]}將顯示該數(shù)組的參數(shù)個數(shù)3。如果替換某個數(shù)組呢?例如替換第二個test2數(shù)組為test5:echo${A[@]/test2/test5}如何刪除一個數(shù)組呢?例如刪除test3數(shù)組命令為:unsetA[2];echo${A[@]}查看效果。那輸入如何在編程來使用呢?請看下面例子:#!/bin/sh#AutoMakeKVMVirtualizationsed's/192/10/g'test.txt sed's/192/10/g'test.txt 把文件里面的192字符替換為10#Autoconfigbondscriptseth_bond(){NETWORKSGATEWAY二'route-n|grep"UG"|awk'{print$2}'、)cat>ifcfg-bondO?EOFDEVICE二bondOBOOTPROTO二static${NETWORK[1]}${NETWORK[2]}${NETWORK[3]}ONBOOT=yesTYPE二EthernetNM_CONTROLLED二noEOF如上腳本為定義三個數(shù)組變量,然后分別來引用,這樣讓腳本可讀性更強,更整潔。關(guān)于數(shù)組就簡單的介紹到這里。Shell編程之a(chǎn)wk、sed命令案例分析在我們?nèi)粘5腟hell編程中我們會用到很多的一些語句,有的語句,如果用好了,可以讓我們的腳本更上一層樓,讓我們的功能更容易滿足企業(yè)的需求。Sed命令:在文件開頭或者結(jié)尾添加字符:Awk命令:Find命令:Grep正則:全備和增量備份Linux系統(tǒng)腳本在Linux中,我們經(jīng)常需要備份系統(tǒng)重要文件,例如/etc、/boot分區(qū)、重要網(wǎng)站數(shù)據(jù)等等,如果每天都完整備份的話,會占用很大的空間,那我們改如何來備份呢?這里采用如下方法來備份:每周日進行完整備份,其余每天為增量備份。那使用什么命令來備份呢,我們使用 tar命令:全備份增量備:#!/bin/sh#AutomaticBackupLinuxSystemFiles#Authorwugk2013-11-22#DefineVariableSOURCE_DIR=($*)TARGET_DIR二/data/backup/YEAR二'date+%Y'MONTH二'date+%m'

DAY二'date+%d'WEEK二'date+%u'A_NAME二'date+%H%M'FILES二system_backup.tgzCODE=$?if[-z"$*"];thenor$0or$0Directories'n \n\nUsage: {/boot/etc}\033[0m"exitfi#DetermineWhethertheTargetDirectoryExistsif[!-d$TARGET_DIR/$YEAR/$MONTH/$DAY];thenmkdir-p$TARGET_DIR/$YEAR/$MONTH/$DAYecho-e"\033[32mThe$TARGET_DIRCreatedSuccessfully!\033[0m"fi#EXECFull_BackupFunctionCommandFull_Backup(){if["$WEEK"-eq"7"];thenrm-rf$TARGET_DIR/snapshotcd $TARGET_DIR/$YEAR/$MONTH/$DAY-g$TARGET_DIR/snapshot-czvf$FILES${SOURCE_DIR[@]}[ "$CODE" == "0" ]&&echo -e" \n\033[32mThese Full_BackupSystemFilesBackupSuccessfully!\033[0m"fi}#PerformincrementalBACKUPFunctionCommandAdd_Backup(){if[$WEEK-ne"7"];thencd$TARGET_DIR/$YEAR/$MONTH/$DAY-g$TARGET_DIR/snapshot?czvf$A_NAME$FILES${SOURCE_DIR[@]}[ "$CODE" == "0" ]&&echo -e" \n\033[32mThese Add_BackupSystemFiles$TARGET_DIR/$YEAR/$MONTH/$DAY/${YEAR}_$A_NAME$FBaESupSuccessfully!\033[0m"fi}sleep3Full_Backup;Add_BackupShell編程之系統(tǒng)硬件信息數(shù)據(jù)庫收集首先我們創(chuàng)建數(shù)據(jù)庫表,格式如下:CREATETABLE'audit_audit_system'('id'int(11)NOTNULLAUTO_INCREMENT,'ip_info'varchar(50)NOTNULL,'serv_info'varchar(50)NOTNULL,'cpu_info'varchar(50)NOTNULL,'disk_info'varchar(50)NOTNULL,'mem」nfo'varchar(50)NOTNULL,'load」nfo'varchar(50)NOTNULL,'mark_info'varchar(50)NOTNULL,PRIMARYKEY('id'),UNIQUEKEY'ip_info'('ip_info'),UNIQUEKEY'ip_info_2'('ip_info'));然后編寫腳本如下:#!/bin/sh#autogetsysteminfo#authorwugk2014-08-29echo-e"\033[34m\033[1m"catvvEOF++++++++++++++++++++++++++++++++++++++++++++++++++++++WelcometousesystemCollect+++++++++++++++++++++++++++++++++++++++++++++++++++++++EOFip_info二'ifconfig|grep"Bcast"|tail-1|awk'{print$2}'|cut-d:-f2、cpu_infol二'cat/proc/cpuinfo|grep'modelname'|tail-1|awk-F:'{print$2}'|sed's/A〃g'|awk'{print$1,$3,$4,$NF}'、cpu_info2二'cat/proc/cpuinfo|grep"physicalid"|sort|uniq-c|wc-l'serv_info='hostname|tail-1'disk_info='fdisk-l|grep"Disk"|grep-v"identifier"|awk'{print$2,$3,$4}'|sed's/,〃g'、mem」nfo二'free-m|grep"Mem"|awk'{print"Total",$1,$2"M"}'、load」nfo二'uptime|awk'{print"CurrentLoad:"$(NF-2)}'|sed's/\,〃g'、mark_info二'BeJing」DC'echo-e"\033[32m \033[1m"echoIPADDR:${ip_info}echoHOSTNAME:$serv_infoechoCPU」NFO:${cpu_infol}X${cpu_info2}echoDISK_INFO:$disk_infoechoMEM」NFO:$mem_infoechoLOAD_INFO:$load_infoecho-e"\033[32m \033[0m"echo-e-n"\033[36mYouwanttowritethedatatothedatabases?\033[1m";readensureif ["$ensure"=="yes"-o"$ensure"=="y"-o"$ensure"=="Y"];thenecho" "echo-e'\033[31mmysql-uaudit-p123456-Daudit

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論