服务器日常运行状态报告脚本

imageddc121fa692d5f09.png

服务器日常运行状态报告脚本

此脚本是在使用的 鸟哥 Linux 私房菜的 CentOs 7 的状态报告脚本

下载地址

使用方法

$ sudo tar -zxvf logfile_centos7.tar.gz -C /   # 没错就是解压到根目录
# 此脚本会在 `/etc/cron.d/` 新建 `vbirdlogfile` 文件    此文件的作用是添加定时任务
# 新建 `/root/bin/logfile` 目录     此目录是脚本执行环境

主脚本介绍

脚本的一些繁体字我翻译成简体中文了、具体每个步骤的作用你可以参考一下

#!/bin/bash
#
##########################################################################################
# YOU MUST KEYIN SOME PARAMETERS HERE!!
# 底下的资料是您必須要填写的!
email="youremail@example.com"		# 这是你想将 logfile 邮寄的 email 地址
				# 你也可以将这些资料寄给许多邮件地址,可以使用底下的格式:
				# email="root@localhost,yourID@hostname"
				# 每个 email 用逗号隔开,不要加空白鍵!

basedir="/dev/shm/logfile/"	# 这个是 logfile.sh 生成的 logfile_mail.txt 存放目录 
funcdir="/root/bin/logfile" # 这个是 logfile.sh 这个脚本的存放目录

outputall="no"		# 这个是『是否要將所有的登录档內容都印出來?
			# 对于一般新手來說,只要看汇整的资讯即可,
			# 所以这里选择 "no" ,如果想要知道所有的登陆讯息,则可以设定为 "yes" 

##########################################################################################
# 底下的资料看看就好,因为不需要更动,程式已经设计好了!
# 如果您有其他的额外发现,可以进行进一步的修改喔! ^_^
export email basedir outputall funcdir
[ ! -d $basedir ] && mkdir $basedir


##########################################################################################
# 0. 设定一些基本的变数內容与检验 basedir 是否存在
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
#LANG=zh_TW.utf8
LANG=C
export PATH LANG LANGUAGE LC_TIME
localhostname=$(hostname)

# 修改使用者邮件位址!
temp=$(echo $email | cut -d '@' -f2)
if [ "$temp" == "localhost" ]; then
	email=$(echo $email | cut -d '@' -f1)\@"$localhostname"
fi

# 检测 awk 与 sed 与 egrep 等会使用到的程式 是否存在
errormesg=""
programs="awk sed egrep ps cat cut tee netstat df uptime journalctl"
for profile in $programs
do
	which $profile > /dev/null 2>&1
	if [ "$?" != "0" ]; then
		echo -e "您的系统并沒有包含 $profile 程式;(Your system do not have $profile )"
		errormesg="yes"
	fi
done
if [ "$errormesg" == "yes" ]; then
	echo "您的系统缺乏本程式执行所需要的系统执行档, $0 将停止作业"
	exit 1
fi

# 测验暂存目录是否存在!
temp=$(ps -aux 2> /dev/null | grep systemd-journal | grep -v grep)
if [ "$temp" == "" ]; then
	echo -e "您的系统沒有启动 systemd-journald 这个 daemon ,"
	echo -e "本程式主要针对 systemd-journald 产生的 logfile 來分析,"
	echo -e "因此,沒有 systemd-journald 则本程式沒有执行之必要。"
	exit 0
fi

# 測驗暫存目錄是否存在!
if [ ! -d "$basedir" ]; then
	echo -e "$basedir 此目录并不存在,本程式 $0 无法进行工作!"
	exit 1
fi


##########################################################################################
# 0.1 设定版本咨询,以及相关的 log files 內容表格!
lastdate="2015-08-20"
versions="Version 0.3"
hosthome=$(hostname)
logfile="$basedir/logfile_mail.txt"
declare -i datenu=$(date +%k)
if [ "$datenu" -le "6" ]; then
	date --date='1 day ago' +%b' '%e   > "$basedir/dattime"
	date --date='1 day ago' +%Y-%m-%d  > "$basedir/dattime2"
else
	date +%b' '%e   > "$basedir/dattime"
	date +%Y-%m-%d  > "$basedir/dattime2"
fi
y="`cat $basedir/dattime`"
y2="`cat $basedir/dattime2`"
export lastdate hosthome logfile y

# 0.1.1 secure file
log=$(journalctl SYSLOG_FACILITY=4 SYSLOG_FACILITY=10 --since yesterday --until today | grep -v "^\-\-")
if [ "$log" != "" ]; then
	journalctl SYSLOG_FACILITY=4 SYSLOG_FACILITY=10 --since yesterday --until today | grep -v "^\-\-" > "$basedir/securelog"
fi

# 0.1.2 maillog file
log=$(journalctl SYSLOG_FACILITY=2 --since yesterday --until today | grep -v "^\-\-")
if [ "$log" != "" ]; then
	journalctl SYSLOG_FACILITY=2 --since yesterday --until today | grep -v "^\-\-" > "$basedir/maillog"
fi

# 0.1.3 messages file
journalctl SYSLOG_FACILITY=0 SYSLOG_FACILITY=1 SYSLOG_FACILITY=3 SYSLOG_FACILITY=5 \
      SYSLOG_FACILITY=6 SYSLOG_FACILITY=7 SYSLOG_FACILITY=8 SYSLOG_FACILITY=11 SYSLOG_FACILITY=16 \
      SYSLOG_FACILITY=17 SYSLOG_FACILITY=18 SYSLOG_FACILITY=19 SYSLOG_FACILITY=20 SYSLOG_FACILITY=21 \
      SYSLOG_FACILITY=22 SYSLOG_FACILITY=23 --since yesterday --until today | grep -v "^\-\-" > "$basedir/messageslog"
touch "$basedir/securelog"
touch "$basedir/maillog"
touch "$basedir/messageslog"

# The following lines are detecting your PC live?
  timeset1=`uptime | grep day`
  timeset2=`uptime | grep min`
  if [ "$timeset1" == "" ]; then
        if [ "$timeset2" == "" ]; then
                UPtime=`uptime | awk '{print $3}'`
        else
                UPtime=`uptime | awk '{print $3 " " $4}'`
        fi
  else
        if [ "$timeset2" == "" ]; then
                UPtime=`uptime | awk '{print $3 " " $4 " " $5}'`
        else
                UPtime=`uptime | awk '{print $3 " " $4 " " $5 " " $6}'`
        fi
  fi

# 显示出本主机的 IP !
IPs=$(echo $(ifconfig | grep 'inet '| awk '{print $2}' | grep -v '127.0.0.'))


##########################################################################################
# 1. 建立欢迎页面通知,以及系統的资料整理!
echo "" > $logfile
/sbin/restorecon -Rv $logfile
echo "=============== system summary =================================" >> $logfile
echo "Linux kernel  :  $(cat /proc/version | \
	awk '{print $1 " " $2 " " $3 " " $4}')" 			>> $logfile
echo "CPU informatin: $(cat /proc/cpuinfo |grep 'model name' | sed 's/model name.*://' | \
	uniq -c | sed 's/[[:space:]][[:space:]]*/ /g')"			>> $logfile
echo "CPU speed     : $( cat /proc/cpuinfo | grep "cpu MHz" | \
	sort | tail -n 1 | cut -d ':' -f2-) MHz" 			>> $logfile
echo "hostname is   :  $(hostname)" 					>> $logfile
echo "Network IP    :  ${IPs}"						>> $logfile
echo "Check time    :  $(date +%Y/%B/%d' '%H:%M:%S' '\(' '%A' '\))" 	>> $logfile
echo "Summary date  :  $(cat $basedir/dattime)"				>> $logfile
echo "Up times      :  $(echo $UPtime)" 				>> $logfile
echo "Filesystem summary: "						>> $logfile
df -Th	| sed 's/^/       /'				>> $logfile
if [ -x /opt/MegaRAID/MegaCli/MegaCli64 ]; then
	cd /root
	echo 								>> $logfile
	echo "Test the RAID card Volumes informations:"			>> $logfile
	/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll | \
	grep -E '^Name|^Size|^State'					>> $logfile
	echo 								>> $logfile
	echo "Test RAID devices"					>> $logfile
	/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll | \
	grep -E '^Firmware|^Slot|^Media Error|^Other Error'		>> $logfile
	cd -
fi
echo " "						>> $logfile
echo " "						>> $logfile

# 1.1 Port 分析
if [ -f $funcdir/function/ports ]; then
	source $funcdir/function/ports
fi


##########################################################################################
# 2 开始测试需要进行的模组!
# 2.1 测试 ssh 是否存在?
input=`cat $basedir/netstat.tcp.output |egrep '(22|sshd)'`
if [ "$input" != "" ]; then
	source $funcdir/function/ssh
	funcssh
	echo " "	>> $logfile
fi

# 2.2 测试 FTP 的玩意儿~
input=`cat $basedir/netstat.tcp.output |egrep '(21|ftp)'`
if [ "$input" != "" ]; then
	if [ -f /etc/ftpaccess ]; then
		source $funcdir/function/wuftp
		funcwuftp
	fi
	proftppro=`which proftpd 2> /dev/null`
	if [ "$proftppro" != "" ]; then
		source $funcdir/function/proftp
		funcproftp
	fi
fi

# 2.3 pop3 测试
input=`cat $basedir/netstat.tcp.output | grep 110`
if [ "$input" != "" ]; then
	dovecot=`cat $basedir/netstat.tcp.output | grep dovecot`
	if [ "$dovecot" != "" ]; then
		source $funcdir/function/dovecot
		funcdovecot
		echo " " >> $logfile
	else
		source $funcdir/function/pop3
		funcpop3
		echo " "	>> $logfile
	fi
fi

# 2.4 Mail 测试
input=`cat $basedir/netstat.tcp.output $basedir/netstat.tcp.local 2> /dev/null |grep 25`
if [ "$input" != "" ]; then
	postfixtest=`netstat -tlnp 2> /dev/null |grep ':25'|grep master`
	#sendmailtest=`ps -aux 2> /dev/null |grep sendmail| grep -v 'grep'`
	if [ "$postfixtest" != "" ] ;  then
		source $funcdir/function/postfix
		funcpost
	else
		source $funcdir/function/sendmail
		funcsendmail
	fi
	procmail=`/bin/ls /var/log| grep procmail| head -n 1`
	if [ "$procmail" != "" ] ; then
		source $funcdir/function/procmail
		funcprocmail
	fi

	openwebmail=`ls /var/log | grep openwebmail | head -n 1`
	if [ "$openwebmail" != "" ]; then
		source $funcdir/function/openwebmail
		funcopenwebmail
	fi
fi

# 2.5 samba 测试
input=`cat $basedir/netstat.tcp.output  2> /dev/null |grep 139|grep smbd`
if [ "$input" != "" ]; then
	source $funcdir/function/samba
	funcsamba
fi

#####################################################################
# 10. 全部的资讯列出給人瞧一瞧!
if [ "$outputall" == "yes" ] || [ "$outputall" == "YES" ] ; then
	echo "  "                                  				>> $logfile
	echo "================= 全部的登录日志归档 ======================="	>> $logfile
	echo "1. 重要的登录记录档 ( Secure file )"           >> $logfile
	echo "   说明:已经取消了 pop3 的资讯!"	     >> $logfile
	grep -v 'pop3' $basedir/securelog 		     >> $logfile 
	echo " "                                             >> $logfile
	echo "2. 使用 last 这个指令输出的结果"               >> $logfile
	last -20                                             >> $logfile
	echo " "                                             >> $logfile
	echo "3. 将特重要的 /var/log/messages 列出來瞧一瞧!"  >> $logfile
	cat $basedir/messageslog 			     >> $logfile
	echo " "					     >> $logfile
	if [ -f /var/log/knockd.log ]; then
		echo "4. 开始分析 knockd 这个服务的相关资料" >> $logfile
		echo "4.1 正常登入主机的指令运作"	     >> $logfile
		grep "$y2" /var/log/knockd.log | grep 'iptables'     >> $logfile
		echo ""
		echo "4.2 因为某些原因,导致无法登入的 IP 与状态!"  >> $logfile
		grep "$y2" /var/log/knockd.log | grep 'sequence timeout' >> $logfile
	fi
fi

# At last! we send this mail to you!
export LANG=zh_TW.utf8
export LC_ALL=zh_TW.utf8
if [ -x /usr/bin/uuencode ]; then
	uuencode $logfile logfile.html | mail -s "$hosthome logfile analysis results" $email 
else
	mail -s "$hosthome logfile analysis results" $email < $logfile
fi

文章作者:糖醋鱼

版权声明:转载请注明来自糖醋鱼的博客


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务器运行报告模板 1.设备信息 "设备 " " "硬件配置信息 " "机型号 " " "CPU " " "内存 " " "硬盘 " " "系统信息 " "操作系统 " " "IP " " "主机名 " " 2、服务器硬件检查 "检查项 "检查操作 "参考标准 "运行状况 " "机柜或者服"观察机柜以及机器上的防尘"是否在防尘上堵塞" 正常 不正常 " "务器上的防"网上的灰尘 "导致气流不畅。 " " "尘网 " " " " "系统风扇运"观察并用手感觉进风和出风"主机和磁盘柜的所" 正常 不正常 " "转检查 "是否正常 "有风扇运转正常。" " "系统运装噪"仔细听系统运转声音 "噪音是否过大,有" 正常 不正常 " "音检查 " "无异常声 " " " " "音 " " "系统电源指"观察液晶面板、电源指示灯"液晶面板、电源指" 正常 不正常 " "示灯检查 "、硬盘报警灯等显示 "示灯、硬盘报警灯" " " " "等显示情况正常 " " "服务器硬盘"硬盘指示灯指示是否正常,"绿色闪烁 " 正常 不正常 " "工作状态 "一般绿色为正常 " " " "服务器网卡"Ping命令检查;观察法;文"网卡指示灯正常闪" 正常 不正常 " "工作状态 "件传输测试。 "烁;丢包情况;双" " " " "工模式。 " " "服务器散热"靠近服务器检查是否有热风" " 正常 不正常 " "检测 "吹出 " " " "服务器电源"电源连接线是否有松动、接" " 正常 不正常 " "连接检查 "触不良等情况 " " " "服务器外壳"服务器整体是否有移动或损" " 正常 不正常 " "整体检查 "害痕迹 " " " 3、操作系统及应用系统检查 "检查项 "检查操作 "参考标准 "运行状况 " "操作系统启动和运 "加电启动 " " 正常 不正常 " "行状况检查 " " " " "检查系统内存利用 "通过windows操作系统"任 "检测三次,每次5分" 正常 不正常 " "率 "务管理器" "钟,记录大约平均 " " " " "的利用率 " " "检查系统CPU利用率"通过windows操作系统"任 "检测三次,每次5分" 正常 不正常 " " "务管理器" "钟,记录大约平均 " " " " "的利用率 " " "操作系统版本检查 "执行命令winver.exe " " 正常 不正常 " "主机连接系统网络 "在其它机器上采用ping命 "观察5分钟是否有丢" 正常 不正常 " "情况 "令 "包情况 " " "主机网络配置情况 "执行命令ipconfig /all "IP地址、子网掩码 " 正常 不正常 " " " "正确 " " "系统账户检查 "利用administrator身份、"能够正常登陆到系 " 正常 不正常 " " "口令登陆 "统 " " "应用程序启动和运 "应用使用测试 " " 正常 不正常 " "行情况 " " " " 4、检查记录 (1)内存、cpu使用情况巡检 用命令taskmgr.exe打开任务管理器 检查方法: Windows下使用任务管理器,记录占用内存、cpu最多的前五位进程或应用程序; 性能 CPU使用情况:表明处理器工作时间百分比的图表,该计数器是处理器活动的主要指示器 ,查看该图表可以知道当前使用的处理时间是多少。 CPU使用记录:显示处理器的使用程序随时间的变化情况的图表,图表中显示的采样情况 取决于"查看"菜单中所选择的"更新速度"设置值,"高"表示每秒2次,"正常"表示每两秒 1次,"低"表示每四秒1次,"暂停"表示不自动更新。 PF使用情况:正被系统使用的页面文件的量。 页面文件使用记录:显示页面文件的量随时间的变化情况的图表,图表中显示的采样情 况取决于"查看"菜单中所选择的"更新速度"设置值。 总数:显示计算机上正在运行的句柄、线程、进程的总数。 认可用量:分配给程序和操作系统的内存,由于虚拟内存的存在,"峰值"可以超过最大 物理内存,"总数"值则与"页面文件使用记录"图表中显示的值相同。 物理内存:计算机上安装的总物理内存,也称RAM,"可用"表示可供使用的内存容量," 系统缓存"显示当前用于映射打开文件的页面的物理内存。 内核内存:操作系统内核和设备驱动程序所使用的内存,"页面"是可以复制到页面文件 中的内存,由此可以释放物理内存;"非分页"是保留在物理内存中的内存,不会被复制 到页面文件中。 (2)硬盘使用情况, 检查方法:Windows下通过查看'我的电脑'—'管理'—'磁盘管理'可以查看磁盘分区与 对应分区使用情况, A、要定期清理磁盘垃圾文件,选择分区'属性'—'常规'—'磁盘清理'。 B、定期检查磁盘的错误信息,选择分区'属性'—'工具'—'开始检查'。 C、定期
服务器运行报告模板 LT " " " " "虎门港7、8号泊位硬件标 " "服务器运行测试报告 " " " " " "2011-11-7 " " " [本次测试内容主要包括服务器硬件系统、操作系统、应用软件系统等性能测试] 1.设备信息 "设备 " " "硬件配置信息 " "机型号 " " "CPU " " "内存 " " "硬盘 " " "系统信息 " "操作系统 " " "IP " " "主机名 " " 3、操作系统及应用系统检查 "检查项 "检查操作 "参考标准 "运行状况 " "操作系统启动和运 "加电启动 " " 正常 不正常 " "行状况检查 " " " " "检查系统内存利用 "通过windows操作系统"任 "检测三次,每次5分" 正常 不正常 " "率 "务管理器" "钟,记录大约平均 " " " " "的利用率 " " "检查系统CPU利用率"通过windows操作系统"任 "检测三次,每次5分" 正常 不正常 " " "务管理器" "钟,记录大约平均 " " " " "的利用率 " " "操作系统版本检查 "执行命令winver.exe " " 正常 不正常 " "主机连接系统网络 "在其它机器上采用ping命 "观察5分钟是否有丢" 正常 不正常 " "情况 "令 "包情况 " " "主机网络配置情况 "执行命令ipconfig /all "IP地址、子网掩码 " 正常 不正常 " " " "正确 " " "系统账户检查 "利用administrator身份、"能够正常登陆到系 " 正常 不正常 " " "口令登陆 "统 " " "应用程序启动和运 "应用使用测试 " " 正常 不正常 " "行情况 " " " " 4、检查记录 (1)内存、cpu使用情况巡检 用命令taskmgr.exe打开任务管理器 检查方法: Windows下使用任务管理器,记录占用内存、cpu最多的前五位进程或应用程序; 性能 CPU使用情况:表明处理器工作时间百分比的图表,该计数器是处理器活动的主要指示器 ,查看该图表可以知道当前使用的处理时间是多少。 CPU使用记录:显示处理器的使用程序随时间的变化情况的图表,图表中显示的采样情况 取决于"查看"菜单中所选择的"更新速度"设置值,"高"表示每秒2次,"正常"表示每两秒 1次,"低"表示每四秒1次,"暂停"表示不自动更新。 PF使用情况:正被系统使用的页面文件的量。 页面文件使用记录:显示页面文件的量随时间的变化情况的图表,图表中显示的采样情 况取决于"查看"菜单中所选择的"更新速度"设置值。 总数:显示计算机上正在运行的句柄、线程、进程的总数。 认可用量:分配给程序和操作系统的内存,由于虚拟内存的存在,"峰值"可以超过最大 物理内存,"总数"值则与"页面文件使用记录"图表中显示的值相同。 物理内存:计算机上安装的总物理内存,也称RAM,"可用"表示可供使用的内存容量," 系统缓存"显示当前用于映射打开文件的页面的物理内存。 内核内存:操作系统内核和设备驱动程序所使用的内存,"页面"是可以复制到页面文件 中的内存,由此可以释放物理内存;"非分页"是保留在物理内存中的内存,不会被复制 到页面文件中。 (2)硬盘使用情况, 检查方法:Windows下通过查看'我的电脑'—'管理'—'磁盘管理'可以查看磁盘分区与 对应分区使用情况, A、要定期清理磁盘垃圾文件,选择分区'属性'—'常规'—'磁盘清理'。 B、定期检查磁盘的错误信息,选择分区'属性'—'工具'—'开始检查'。 C、定期整理磁盘碎片,选择分区'属性'—'工具'—'开始整理'。 (3)系统信息检查,显示关于计算机及其操作系统的详细配置信息,包括操作系统 配置、安全信息、产品 ID 和硬件属性,如 RAM、磁盘空间和网卡,系统运行时间。 (4)系统端口检查 查看开启了哪些端口,显示所有连接和监听端口。所接开启端口的服务。 "服务器整体巡检结果 " "一.硬件配置符合合同要求 符合 不符合 " "二.硬件系统运行稳定 稳定 不稳定 " "三.操作系统运行稳定 稳定 不稳定 " "四.应用软件运行稳定 稳定 不稳定 " "记录人签字: "业主签字: " ----------------------- 服务器运行报告模板(1)全文共13页,当前为第1页。 服务器运行报告模板(1)全文共13页,当前为第2页。 服务器运行报告模板(1)全文共13页,当前为第3页。 服务器运行报告模板(1)全文共13页,当前为第4页。 服务器运行报告模板(1)全文共13页,当前为第5页。 服务器运行报告模板(1)全文共13页,当前为第6页。 服务器运行报告模板(1)全文共13页,当前为第7页。 服务器运行报告模板(1)全文共13页,当前为第8页。 服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值