你想随时知道你的服务器的运行状况吗?比如CPU,内存,IO,网络的使用情况,该监听的端口是否正在监听,是否有进程占用了太多内存等等。你是否想到了SNMP,Cacti,Nagios。
有个更简单的办法就是写一个shell脚本来收集系统运行的信息,然后用crontab定时去执行,然后用nginx把收集的系统信息暴露出来,这样你就可以随时用手机查看你的服务器运行信息了。
这里有一个shell脚本,可以收集系统的常规的运行信息。
https://github.com/onlytiancai/codesnip/blob/master/shell/sysinfo.sh
运行它,它会输出类似下面的信息,你可以修改脚本添加你关心的信息,或者删除你看不懂或不关心的信息。
https://github.com/onlytiancai/codesnip/blob/master/shell/sysinfo.txt
假设我们要把该脚本下载到/opt/scripts目录下,执行如下命令
mkdir -p/opt/scripts
cd /opt/scripts
wgethttps://raw.github.com/onlytiancai/codesnip/master/shell/sysinfo.sh
mkdir -p/var/www/sysinfo/
运行crontab -e,增加如下定时任务,每5分钟收集系统信息并保存在/var/www/sysinfo目录下
*/5 * * * */bin/sh/opt/scripts/sysinfo.sh >/var/www/sysinfo/sysinfo.txt 2>&1
修改nginx配置,把/var/www/sysinfo目录开放成可以通过web访问。
location /sysinfo {
alias /var/www/sysinfo/;
}
这样,你就可以在你的手机上输入 http://yourdomain.com/sysinfo/sysinfo.txt 来随时查看你的服务器状态了。
提示:
如果你觉得系统信息里有敏感信息,比如ps命令的输出,可以修改脚本把敏感信息去掉。
为了防止别人知道你的系统信息url,你可以在nginx配置的location节设置一个比较长的随机的地址,然后在手机浏览器的收藏夹里把该网址收藏一下。