大漠駝鈴

          置身浩瀚的沙漠,方向最為重要,希望此blog能向大漠駝鈴一樣,給我方向和指引。
          Java,Php,Shell,Python,服務器運維,大數據,SEO, 網站開發、運維,云服務技術支持,IM服務供應商, FreeSwitch搭建,技術支持等. 技術討論QQ群:428622099
          隨筆 - 238, 文章 - 3, 評論 - 117, 引用 - 0
          數據加載中……

          shell腳本檢查memcache進程 并自動重啟

          #!/bin/sh
          #check memcache process and restart if down

          mm_bin="/usr/local/bin/memcached"
          mm_log="/home/xxx/memcached_check.log"
          mm_ports=("11211" "11212")
          mm_param=("-d -m 20480 -p 11211 -u www" "-d -m 256 -p 11212 -u www")
          mm_count=${#mm_ports[@]}

          t=$(date -d "today" +"%Y-%m-%d %H:%M:%S")
          i=0
          while [ $i -lt $mm_count ]
          do
          mm_exists=`ps -ef|grep "memcached"|grep "${mm_ports[$i]}"|grep -v grep|wc -l`

          if [ "$mm_exists" == "0" ]; then
          ${mm_bin} ${mm_param[$i]} 2>&1 > /dev/null &
          echo "${t} : ${mm_bin} ${mm_param[$i]}" >> ${mm_log}
          fi

          let i++
          done

          ===============================================================

          添加為自動執行:
              #crontab -e
          */10 * * * * /bin/sh /home/xxx/memcached_check.sh


          系統每10分鐘會自動執行memcached_check.sh

          -------------------------------------------------------------
          備用shell語句:

          #檢查mysql狀態
          PORT=`netstat -na | grep "LISTEN" | grep "3306" | awk '{print $4}' | awk -F. '{print $2}'`
          if [ "$PORT" -eq "3306" ]

          #檢查mysql占CPU負載
          mysql_cpu=`top -U root -b -n 1 | grep mysql | awk '{print $10}'|awk -F. '{print $1}'`
          #如果mysql cpu負載大于80,則重啟mysql
          if [ "$mysql_cpu" -ge "80" ]

          #獲得相關信息
          ps -ef|grep "memcached"|grep -v "grep"|wc -l
          ps -ef|grep "memcached"|grep "11211"|grep -v "grep"|wc -l
          ps aux|grep "memcached"|grep -v "grep"|awk '{sum+=$4;n++};END{print sum}'
          ps aux|grep "memcached"|grep -v "grep"|awk '{printf $1}'

          MYPORT=`netstat -na|grep "tcp"|grep "3306"|awk -F[:" "]+ '{print $5}'`
          HAPORT=`netstat -na|grep "udp"|grep "694"|awk -F[:" "]+ '{print $5}'`
          PING=`ping -c 5 www.linuxtone.org|awk -F, '/packets/{print $3}'|cut -c 2-|awk '{print $1}'`
          DB1IP=`ifconfig eth0|awk '/inet/{print $2}'|cut -c 6-`

          ----------------------------------------------------------------------------
          shell if語句的一些資料:
          –b 當file存在并且是塊文件時返回真
          -c 當file存在并且是字符文件時返回真
          -d 當pathname存在并且是一個目錄時返回真
          -e 當pathname指定的文件或目錄存在時返回真
          -f 當file存在并且是正規文件時返回真
          -g 當由pathname指定的文件或目錄存在并且設置了SGID位時返回為真
          -h 當file存在并且是符號鏈接文件時返回真,該選項在一些老系統上無效
          -k 當由pathname指定的文件或目錄存在并且設置了“粘滯”位時返回真
          -p 當file存在并且是命令管道時返回為真
          -r 當由pathname指定的文件或目錄存在并且可讀時返回為真
          -s 當file存在文件大小大于0時返回真
          -u 當由pathname指定的文件或目錄存在并且設置了SUID位時返回真
          -w 當由pathname指定的文件或目錄存在并且可執行時返回真。一個目錄為了它的內容被訪問必然是可執行的。
          -o 當由pathname指定的文件或目錄存在并且被子當前進程的有效用戶ID所指定的用戶擁有時返回真。

          UNIX Shell 里面比較字符寫法:
          -eq 等于
          -ne 不等于
          -gt 大于
          -lt 小于
          -le 小于等于
          -ge 大于等于
          -z 空串
          = 兩個字符相等
          != 兩個字符不等
          -n 非空串

          ------------------------------------------------------------
          crontab 的一些資料:

          基本格式:
          *  *  *  *  *  command
          分  時 日  月  周  命令


          第1列表示分鐘1~59 每分鐘用 * 或 */1 表示,*/10表示每10分鐘
          第2列表示小時1~23(0表示0點)
          第3列表示日期1~31
          第4列表示月份1~12
          第5列標識號星期0~6(0表示星期天)
          第6列要運行的命令

          posted on 2011-02-12 11:32 草原上的駱駝 閱讀(1271) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 康马县| 南岸区| 福清市| 女性| 三江| 沧源| 乐平市| 印江| 富阳市| 屯门区| 莒南县| 方山县| 磐石市| 偏关县| 潜山县| 甘南县| 嘉兴市| 敖汉旗| 延安市| 本溪市| 澄城县| 临湘市| 五河县| 区。| 北海市| 阿荣旗| 若羌县| 清丰县| 体育| 临澧县| 曲水县| 兴安盟| 田林县| 镇宁| 敦化市| 黄石市| 定日县| 司法| 准格尔旗| 乐陵市| 福建省|