標籤:shell 編程案例
1.能夠設定檢查伺服器的台數 和 要檢查哪台伺服器,把不線上主機的ip地址和對應不線上的時間,並統計不線上主機的台數儲存的到檔案裡。然後把檔案內容顯示到螢幕上。
1 #! /bin/bash 2 read -p "請輸入檢測台數:" x 3 s=0 4 b=0 5 for ((i=1;i<=x;i++)) 6 do 7 read -p "請輸入要檢測的主機地址,輸入後請稍後:" ip[$i] 8 9 ping -c 1 192.168.1.${ip[$i]} &> /dev/null 10 if [ $? -ne 0 ] 11 then 12 date >> /root/shell/offline.txt 13 echo "ip:192.168.1.${ip[$i]} is offline" >>/root/shell/offline.txt 14 let s++ 15 else echo "192.168.1.${ip[$i]} is online" 16 fi 17 done 18 19 echo "本次不線上數:" $s >>/root/shell/offline.txt 20 tail -10 /root/shell/offline.txt
2.給源碼http服務編寫啟動指令碼
1 #! /bin/bash 2 # chkconfig: 2345 75 25 3 # description: apache http 4 # processname: httpd 5 path="/usr/local/httpd/bin/apachectl" 6 case $1 in 7 start) 8 $path start &> /dev/null 9 sleep 1 10 echo -n "apache is start..ok";; 11 stop) 12 $path stop 13 sleep 2 14 echo -n "apache is stop..ok";; 15 restart) 16 $path stop 17 echo -n "apache is stop..ok" 18 sleep 3 19 $path start 20 echo -n "apache is start..ok";; 21 status) 22 netstat -anptu | grep httpd$ 23 if [ $? -eq 0 ];then 24 echo "apache is runing" 25 else echo "apache is not run" 26 fi;; 27 *) 28 echo "apache {start/stop/restart/status}" 29 esac 30 echo
3.當系統根分區的可以空間低於15G時,向系統所有終端發送警告資訊“根分區磁碟空間不足”
1 #! /bin/bash 2 i=`df -h|grep /$|awk ‘{print $4}‘|awk -F "G" ‘{print $1}‘` 3 if [ $i -lt 15 ];then 4 wall "根分區可用空間為 $i G,空間不足" 5 fi
4.添加使用者時 ,使用者可以設定添加使用者的個數,使用者名稱首碼、使用者的密碼,使用者的有效期間。
1 #! /bin/bash 2 read -p "請輸入使用者個數" count 3 read -p "請輸入使用者名稱首碼" user 4 read -p "使用者名稱密碼" passwd 5 read -p "有效期間" shi 6 s=85 7 for((i=$s;i<=$s+$count-1;i++)) 8 do 9 if [ $i -lt 10 ];then 10 useradd "$user"0$i 11 echo "$passwd" | passwd --stdin "$user"0$i &>/dev/null 12 chage -d 0 "$user"0$i 13 chage -M $shi "$user"0$i 14 else 15 useradd $user$i 16 echo "$passwd" | passwd --stdin $user$i &>/dev/null 17 chage -d 0 $user$i 18 chage -M $shi $user$i 19 fi 20 done
5.在mysql主從同步中 slave伺服器上運行指令碼,監控 IO 進程 和 SQL 進程的狀態 ,當有一個進程的狀態是NO時,向終端發送警告資訊
1 #! /bin/bash 2 a=`mysql -uroot -p123456 -e "show slave status\G"|grep -iE "*io_runing"|awk ‘{print $2}‘` 3 b=`mysql -uroot -p123456 -e "show slave status\G"|grep -iE "*sql_runing"|awk ‘{print $2}‘` 4 while : 5 do 6 if [ $a = "NO" -o $b = "NO" ];then 7 wall "mysql runing_status is NO" 8 fi 9 done
6.實用正則表達
mac:([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2} ip:([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]\.){3}[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]
本文出自 “sleepcat” 部落格,請務必保留此出處http://sw5720.blog.51cto.com/8812314/1437602