PHP+shell脚本操作Memcached和Apache Status的实例分享
memcached 进程启动及监控1.memcached_inc.sh 设置路径,端口等讯息。 config includeHOST=$(hostname) MEMCACHED_PID_FILE="/tmp/memcached.pid" MEMCACHED="memcached -d -m 64 -p $PORT -u memcache -l 127.0.0.1 -P $MEMCACHED_PID_FILE" ERROR_LOGFILE="${ROOT}/memcached${SITE}${HOST}${PORT}.log" 2.gm_memcached.sh 控制memcached 启动,停止,重启。 memcached start and stop$1 actionROOT=$(cd "$(dirname "$0")"; pwd) . ${ROOT}/memcached_inc.sh start() { if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then sleep 2 PID=$(cat $MEMCACHED_PID_FILE) printf "starting memcached daemonn" } stop() { if [ -f "$MEMCACHED_DAEMON_PID_FILE" ] && [ -s "$MEMCACHED_DAEMON_PID_FILE" ]; then sleep 1 if [ -f "$MEMCACHED_PID_FILE" ] && [ -s "$MEMCACHED_PID_FILE" ]; then } case "$1" in start) stop) restart) *) esac exit 0 3.memcached_daemon.sh 监控memcached 进程,如进程失效则自动启动。 memcached daemonROOT=$(cd "$(dirname "$0")"; pwd) . ${ROOT}/memcached_inc.sh while : if [ -z "$PID" ] || [ -z $(ps aux|awk '{print $2}' | grep "^$PID$") ]; then sleep 5 done exit 0 使用方法:
shell 记录apache status并自动更新到数据库1. 获取apache status monitor_log.sh 连接数site_connects=$(netstat -ant | grep $ip:80 | wc -l) 当前连接数site_cur_connects=$(netstat -ant | grep $ip:80 | grep EST | wc -l) apacheapache_speed=$(netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}') printf "[#start#]n$(date '+%Y-%m-%d %H:%M:%S')n" exit 0 在终端设置crontab执行 > /home/fdipzone/monitor.log
2. 将apache status log 写入数据库 save_monitor_log.php $logfile = dirname(FILE).'/monitor.log';$dbconfig = array( $obj = new SaveMonitorLog($dbconfig,'myweb'); // 讀取monitor log,記錄入db,查看db private $_apache_state = array('TIME_WAIT','CLOSE_WAIT','SYN_SENT','SYN_RECV','FIN_WAIT1','FIN_WAIT2','ESTABLISHED','LAST_ACK','CLOSING'); /* init / /** load data
// 讀取log數據 // 正則分析數據 [#start#]*[#end#] start(.*?) end.*?/si',$logdata,$data); if(isset($data[1]) && count($data[1])>0){ } /** parser data
$indb['site'] = $this->_site; for($i=5,$max=count($tmp)-2; $i<$max; $i++){ return $indb; /* connect db / /* add to db / /* debug / } // class end ?> 在终端crontab执行 table monitor_log struct (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
