大漠駝鈴

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

          shell腳本檢查memcache進(jìn)程 并自動重啟

          #!/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

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

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


          系統(tǒng)每10分鐘會自動執(zhí)行memcached_check.sh

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

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

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

          #獲得相關(guān)信息
          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 當(dāng)file存在并且是塊文件時返回真
          -c 當(dāng)file存在并且是字符文件時返回真
          -d 當(dāng)pathname存在并且是一個目錄時返回真
          -e 當(dāng)pathname指定的文件或目錄存在時返回真
          -f 當(dāng)file存在并且是正規(guī)文件時返回真
          -g 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了SGID位時返回為真
          -h 當(dāng)file存在并且是符號鏈接文件時返回真,該選項(xiàng)在一些老系統(tǒng)上無效
          -k 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了“粘滯”位時返回真
          -p 當(dāng)file存在并且是命令管道時返回為真
          -r 當(dāng)由pathname指定的文件或目錄存在并且可讀時返回為真
          -s 當(dāng)file存在文件大小大于0時返回真
          -u 當(dāng)由pathname指定的文件或目錄存在并且設(shè)置了SUID位時返回真
          -w 當(dāng)由pathname指定的文件或目錄存在并且可執(zhí)行時返回真。一個目錄為了它的內(nèi)容被訪問必然是可執(zhí)行的。
          -o 當(dāng)由pathname指定的文件或目錄存在并且被子當(dāng)前進(jìn)程的有效用戶ID所指定的用戶擁有時返回真。

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

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

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


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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桑日县| 南康市| 沁阳市| 诏安县| 济南市| 乌鲁木齐县| 阿坝县| 万载县| 永仁县| 浦东新区| 县级市| 仙桃市| 海丰县| 盈江县| 富宁县| 玛沁县| 克拉玛依市| 兴城市| 乌拉特中旗| 兖州市| 华安县| 阳曲县| 黔西县| 双流县| 泰顺县| 徐水县| 水城县| 舒兰市| 隆尧县| 乐安县| 子洲县| 余姚市| 张掖市| 虎林市| 湘潭市| 威远县| 南投市| 襄汾县| 磐石市| 齐齐哈尔市| 乐陵市|