获取内存大小
free -m | awk 'NR==3 {print $NF}'
监控web和数据库
【端口监控,监控服务进程或进程数,在客户端模拟用户访问,登陆mysql数据库判断】
在服务器本地监控服务端口的常见命令有netstat,ss,lsof。从远端监控服务器本地端口的命令有telnet,nmap,nc
ps -ef | grep nginx | wc -l
ps -ef | grep mysql | wc -l
使用wget ,curl
mysql客户端连接数据库,根据返回值和内容判断
mysql -uuser -ppassword -e "select version();" &>/dev/null; echo $?
本地
netstat -lntup | grep 3306 | wc -l
netstat -lntup | grep mysql | wc -l
ss -lntup | grep mysql | wc -l
ss -lntup | grep 3306 | wc -l
lsof -i tcp:3306 | wc -l
远端
nmap 127.0.0.1 -p 3306 | grep open | wc -l
echo -e "\n" | telnet 127.0.0.1 3306 2>/dev/null | grep Connected | wc -l
nc -w 2 127.0.0.1 3306 &>/dev/null
进程数
ps -ef | grep mysql | grep -v grep | wc -l
客户端模拟用户访问
wget -spider --timeout=10 --tries=2 域名 &>/dev/null #--spider模拟爬取
wget -T 10 -q --spider http://域名 >&/dev/null #-q 表示安静的
curl -s -o /dev/null http://域名
php程序访问数据库
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('localhost','root','******') or mysql_error();
//$link_id=mysql_connect('localhost','test',' ');
if($link_id) {
echo "mysql successful by * "
}else{
echo mysql_error();
}
?>
nginx web服务
netstat -lnt | grep -w 80 | awk -F "[ :]+" '{print $5}'
netstat -lnt | grep -w 80 | wc -l
ss -lntup | grep -w 80 | wc -l
lsof -i tcp:80 | wc -l
远端
nmap 127.0.0.1 -p 80 | grep open | wc -l
echo -e "\n" | telnet 127.0.0.1 80 2>/dev/null | grep Connected | wc -l
nc -w 2 127.0.0.1 80 &>/dev/null
进程数
ps -ef | grep nginx | grep -v grep | wc -l
ps -C nginx --no-header | wc -l
客户端模拟用户
wget --spider --timeout=10 --tries=2 http://127.0.0.1 &>//dev/null
wget -T 10 -q --spider http://127.0.0.1 &>/dev/null
curl -s -o /dev/null http://127.0.0.1
根据HTTP响应header的结果判断
curl -I -s -w "%{http_code}\n" -o /dev/null http://127.0.0.1
`netstat -lntup | grep nginx | wc -l` -gt 0
`lsof -i tcp:80 | wc -l` -gt 0
`nmap 127.0.0.1 -p 80 2>/dev/null | grep open | wc -l` -gt 0
`nc -w 2 127.0.0.1 80 &>/dev/null&&echo ok | grep ok | wc -l` -gt 0
`ps -ef | grep -v grep | grep nginx | wc -l` -ge 1
`curl -I -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1` = [[ [23]0[012] ]]
`curl -I http://127.0.0.1 2>/dev/null | head -1 |egrep "200|302|301" | wc -l` -eq 1
"`curl -s http://127.0.0.1`" = "特定的返回值"
变量的子串替换加正则表达式
"$num" = "${num//[^0-9]/}"