线上memcached服务器启动了很多实例,端口很多,需要对这些端口进行监控,并在端口关闭的情况下自启动。监控脚本如下:
代码语言:javascript复制[root@memcache2 ~]# ps -ef|grep /usr/bin/memcached|grep -v grep
root 6139 1 0 2016 ? 04:49:49 /usr/bin/memcached -d -m 512 -p 11212 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6184 1 0 2016 ? 00:29:25 /usr/bin/memcached -d -m 512 -p 11411 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6198 1 0 2016 ? 00:29:24 /usr/bin/memcached -d -m 512 -p 11412 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6214 1 0 2016 ? 00:30:17 /usr/bin/memcached -d -m 512 -p 11413 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6229 1 0 2016 ? 00:29:19 /usr/bin/memcached -d -m 512 -p 11521 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6244 1 0 2016 ? 00:29:49 /usr/bin/memcached -d -m 512 -p 11522 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6259 1 0 2016 ? 00:09:27 /usr/bin/memcached -d -m 512 -p 11211 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6274 1 0 2016 ? 00:09:22 /usr/bin/memcached -d -m 512 -p 11213 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6289 1 0 2016 ? 00:29:54 /usr/bin/memcached -d -m 512 -p 11221 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 6304 1 0 2016 ? 00:29:16 /usr/bin/memcached -d -m 512 -p 11222 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 12514 1 0 13:00 ? 00:00:00 /usr/bin/memcached -d -m 512 -p 11321 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 12758 1 0 13:02 ? 00:00:00 /usr/bin/memcached -d -m 512 -p 11322 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11322.pid
root 24085 1 0 2016 ? 00:31:33 /usr/bin/memcached -d -m 512 -p 11311 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11311.pid
root 24100 1 0 2016 ? 00:31:55 /usr/bin/memcached -d -m 512 -p 11312 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11312.pid
root 24115 1 0 2016 ? 00:31:51 /usr/bin/memcached -d -m 512 -p 11313 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11313.pid
root 24740 1 0 2016 ? 00:03:20 /usr/bin/memcached -d -m 512 -p 11811 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11811.pid
root 24755 1 0 2016 ? 00:03:19 /usr/bin/memcached -d -m 512 -p 11812 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11812.pid
root 24770 1 0 2016 ? 00:03:18 /usr/bin/memcached -d -m 512 -p 11813 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11813.pid
root 24785 1 0 2016 ? 00:03:18 /usr/bin/memcached -d -m 512 -p 11814 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11814.pid
root 24800 1 0 2016 ? 00:03:19 /usr/bin/memcached -d -m 512 -p 11815 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11815.pid
root 24815 1 0 2016 ? 00:03:14 /usr/bin/memcached -d -m 512 -p 11816 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11816.pid
root 24830 1 0 2016 ? 00:03:17 /usr/bin/memcached -d -m 512 -p 11817 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11817.pid
root 24845 1 0 2016 ? 00:03:17 /usr/bin/memcached -d -m 512 -p 11818 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11818.pid
root 24860 1 0 2016 ? 00:03:14 /usr/bin/memcached -d -m 512 -p 11819 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11819.pid
root 24875 1 0 2016 ? 00:03:18 /usr/bin/memcached -d -m 512 -p 11820 -u root -c 4096 -P /var/lib/memcache/logs/memcached_11820.pid
代码语言:javascript复制[root@memcache2 ~]# ps -ef|grep /usr/bin/memcached|grep -v grep|awk -F" " '{print $13}' > /root/memcache_port.list
代码语言:javascript复制[root@memcache2 ~]# cat /root/memcache_port.list
11212
11411
11412
11413
11521
11522
11211
11213
11221
11222
11321
11322
11311
11312
11313
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
代码语言:javascript复制[root@memcache2 ~]# cat memcache_port.sh //脚本权限是755
#!/bin/bash
for i in `cat /root/memcache_port.list`
do
NUM=$(/usr/sbin/lsof -i:$i|wc -l)
if [ $NUM -eq 0 ];then
/usr/bin/memcached -d -m 512 -p $i -u root -c 4096 -P /var/lib/memcache/logs/memcached_$i.pid
else
echo "$i is ok"
fi
done
代码语言:javascript复制[root@memcache2 ~]# crontab -l
* * * * * /bin/bash -x /root/memcache_port.sh > /dev/null 2>&1