筆試題 shell

來源:互聯網
上載者:User
企業實踐題1:(生產實戰案例):監控MySQL主從同步是否異常,如果異常,則傳送簡訊或者郵件給管理員。提示:如果沒主從同步環境,可以用下面文本放到檔案裡讀取來類比:
階段1:開發一個守護進程指令碼每30秒實現檢測一次。
階段2:如果同步出現如下錯誤號碼(1158,1159,1008,1007,1062),則跳過錯誤。

階段3:請使用數組技術實現上述指令碼(擷取主從判斷及錯誤號碼部分)

mysql查看狀態語句  

mysql>show slave status\G

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.0.0.42
                  Master_User: backup
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 538
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 701
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes


使用MysqlCmd2 命令篩選後語句:

Yes
Yes
0
0
it


#!/bin/bashport=3306 error=(1158 1159 1008 1007 1062) #錯誤編號的數組MysqlCmd1= mysql -uroot -p192.168.51.9 -eMysqlCmd2= mysql -uroot -p192.168.51.9 -e"show slave status\G"|egrep "_Running|Last_Errno|Behind_Master"|awk '{print $NF}'
#檢查mysql是否運行function is_run(){ [ `lsof -i:$port|wc -l` -lt 2 ]&&{ echo"mysql is stop" exit 1 }}
#提取mysql slave狀態到數組arrayfunction mysql_status(){ array=(`$MysqlCmd2`) }
#判斷錯誤類型,是否是需要排除的那幾個錯誤編號function judge_error(){for i in ${error[*]}do   if [ "${array[2]}" == "$i" ];then   $MysqlCmd1"stop slave;SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;start slave;"  else   echo "mysql is failed,error id is ${array[2]}"  fidone}
#判斷 mysql slave 狀態judge_status(){mysql_statusecho ${array[*]}if [ "${array[0]}" == "Yes" -a "${array[1]}" == "Yes" -a "${array[3]}" == "0" ];then    echo "Mysql slave is ok"else    judge_error ${array[2]}fi}
#主函數function main(){while true do   is_run   judge_status   sleep 30 done}main





企業實踐題2:
使用for迴圈在/oldboy目錄下通過隨機小寫10個字母加固定字串oldboy大量建立10個html檔案,名稱例如為:

coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html

#!/bin/bash
dir=/oldboy
[ ! -d $dir ] && mkdir -p $dir
cd $dir

 
for((i=1;i<=10;i++ ))
do
a=`tr -dc "a-z"  < /dev/urandom | head -c 10`_oldboy,html
  touch $a
done

#tr -dc 的意思是,將字串中a到z 以外的字元提取並刪除














相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.