原创 shell訓練營Day30

練習91用shell腳本實現,部署mysql主從,假設兩臺機器上已經安裝了mysql,並且目前無新庫。 #!/bin/bashmaster_ip=192.168.100.12slave_ip=192.168.100.13mysqlc="my

原创 shell訓練營Day31

練習96需求背景: 領導要求小明備份數據庫服務器裏面的100個庫(數據量在幾十到幾百G),需要以最快的時間完成(5小時內),並且不能影響服務器性能。 #!/bin/bash##假設100個庫的庫名、host、port以及配置文件路徑存到了一

原创 shell訓練營Day29

練習86在centos6系統裏,我們可以使用ntsysv關閉不需要開機啓動的服務,當然也可以使用chkconfig工具來實現。 寫一個shell腳本,用chkconfig工具把不常用的服務關閉。腳本需要寫成交互式的,需要我們給它提供關閉的服

原创 shell訓練營Day28

練習81阿里雲的機器,今天收到客服來的電話,說服務器的磁盤io很重。於是登錄到服務器查看,並沒有發現問題,所以懷疑是間歇性地。正要考慮寫個腳本的時候,幸運的抓到了一個線索,造成磁盤io很高的幕後黑手是mysql。當時去show proces

原创 shell訓練營Day27

練習76linux系統中,目錄/root/下有一個文件ip-pwd.ini,內容如下: 10.111.11.1,root,xyxyxy 10.111.11.2,root,xzxzxz 10.111.11.3,root,123456 10.1

原创 shell訓練營Day26

練習71 判斷所給目錄內哪些二級目錄下有沒有text.txt文件。 有text.txt文件的二級目錄,計算出該test.txt文件裏面所給出單詞的次數。 假如腳本名字爲1.sh, 運行腳本的格式爲 ./1.sh 123 root,其中

原创 shell訓練營Day25

練習66寫一個腳本: 判斷當前主機的CPU生產商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生產商爲AuthenticAMD,就顯示其爲AMD公司; 如果其生產商爲GenuineIntel,就顯示其爲Int

原创 shell訓練營Day24

練習61有兩個文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中沒有的行找出來,並寫入到c.txt,然後計算c.txt文件的行數。 #!/bin/bash cat a.txt|while read linedoif ! g

原创 shell訓練營Day24

練習61有兩個文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中沒有的行找出來,並寫入到c.txt,然後計算c.txt文件的行數。 #!/bin/bash cat a.txt|while read linedoif ! g

原创 shell訓練營Day23

練習56在文本文檔1.txt第5行(假設文件行數大於5)後面增加如下內容: This is a test file. Test insert line into this file. #!/bin/bashn=0cat 1.txt |whi

原创 shell訓練營Day20

練習41編寫一個問候程序,它執行時能根據系統當前的時間向用戶輸出問候信息。假設從半夜到中午爲早晨,中午到下午六點爲下午,下午六點到半夜爲晚上。 #!/bin/bashd=date +%Hif [ $d -ge 0 -a $d -lt 7 ]

原创 shell訓練營Day21

練習46寫一個getinterface.sh 腳本可以接受選項[i,I],完成下面任務: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)當用戶使用-i選項時,顯示指定網卡的IP地址;當用戶使

原创 shell訓練營Day22

練習51寫一個shell腳本,通過curl -I 返回的狀態碼來判定所訪問的網站是否正常。比如,當狀態碼爲200時,纔算正常。 #!/bin/bashurl="http://www.mmz.com/index.php"mail_user=1

原创 shell訓練營Day16

練習21計算文檔a.txt中每一行中出現的數字個數並且要計算一下整個文檔中一共出現了幾個數字。例如a.txt內容如下:12aa*lkjskdjalskdflkskdjflkjj我們腳本名字爲 ncount.sh, 運行它時:bash nco

原创 shell訓練營Day19

練習36用shell實現,把一個文本文檔中只有一個數字的行給打印出來。 參考答案 #!/bin/bash while read line do n=`echo $line |sed 's/[^0-9]//g'|wc -L`