当发生异常警告时,需要了解服务器的当前运行状态。写一个脚本,记录状态,用于诊断。
注意控制日志文件的长度。
#/bin/sh
logdir=$(cd "$(dirname "$0")";pwd)/..
#echo dir=$logdir
#mkdir -p ${logdir}
logfile=${logdir}/nagios_server_status.log
max_line=20000
function log_server_status(){
#date
/bin/date >> ${logfile}
#processs
/bin/ps -ef >> ${logfile}
#memory
/usr/bin/free -m >> ${logfile}
#disk
/bin/df -h >> ${logfile}
#network
/usr/bin/sar -n DEV 1 1 >> ${logfile}
/usr/sbin/ss -s >> ${logfile}
#sys
#echo sysctl
/sbin/sysctl -a >> ${logfile} 2>&1
#end
echo end############################################# >> ${logfile}
}
log_server_status
tail -${max_line} ${logfile} > ${logfile}.tmp
mv ${logfile}.tmp ${logfile}