linux系统健康检查脚本

#!/bin/bash
echo "You are logged in as `whoami`";
if [ `whoami` != root ]; then
echo "Must be logged on as root to run this script."
exit
fi
CHECK_DATE=`date +%F`
echo "Running script at `date`"
CHECK_REPORT_PATH=/tmp/getinfo
ls -d $CHECK_REPORT_PATH
if [ $? -gt 0 ]
then
mkdir $CHECK_REPORT_PATH
fi
chmod -R 777 $CHECK_REPORT_PATH
CURRENT_DIR=`pwd`
echo "#################### Check Start ####################"
HOST=`hostname`
echo "********Hostname Check**********" >$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "Hostname is $HOSTNAME" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#系统版本检查
echo "********OS Level**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
uname -a >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#系统日志检查
echo "********System log*******" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
cat /var/log/messages >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查软件安装情况
echo "********Yum*******" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
history | grep yum && history | grep rpm >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#文件系统检查
echo "********File System**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
df -h >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "over 75%" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
df -h |grep '[7-9][5-9]%'>>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#网络地址配置信息
echo "********System /etc/hosts********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
cat /etc/hosts >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#查看内存使用情况
echo "**********mem check************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
free >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
vmstat >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#查看磁盘读写情况
echo "********io check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
iostat >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#网络检查
echo "********network route check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
netstat -rn >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo "********network check**********" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
ifconfig -a >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#环境变量检查
echo "********env info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
env >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#用户组检查
echo "********group info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
cat /etc/group >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#用户密码检查
echo "********user info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
cat /etc/passwd >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查操作系统定时任务
echo "********System crontab info****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
crontab -l >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查系统裸设备属主
echo "******** RAW****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
ls -l /dev/sd* >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查关机重启
echo "********REBOOT****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
last | grep reboot && last | grep shutdown >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#登录用户检查及远程登录
echo "********USER****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
who && who | wc -l >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
netstat -anp | grep 22 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#系统运行时间及平均负载
echo "********Uptime****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
uptime >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查系统占用cpu,内存,磁盘io最大的进程
echo "********Dstat cpu****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
dstat -c -y -l --proc-count --top-cpu 2 3 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE

echo "********Dstat mem****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
dstat -g -l -m -s --top-mem 2 3 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE

echo "********Dstat io****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
dstat --top-io  2 3 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#进程总数
echo "********Dstat proc****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
dstat --proc-count 3 3 >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查selinux
echo "********SELINUX****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
getenforce >> $CHECK_REPORT_PATH/Report_$CHECK_DATE
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE
#检查用户错误登录次数
echo "********LOGIN****************" >>$CHECK_REPORT_PATH/Report_$CHECK_DATE
pam_tally2 -u readonly #pam_tally2 -u readonly -r 重置用户错误登录次数
echo -e "----------------------------------------------------\n">>$CHECK_REPORT_PATH/Report_$CHECK_DATE 

转载于:https://www.cnblogs.com/The-day-of-the-wind/p/10894197.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux系统的Shell检查脚本是一种用于检查和测试Shell脚本的工具。它可以帮助开发人员和系统管理员发现脚本中的错误和问题,以确保脚本的正确性和可靠性。Shell检查脚本可以检查脚本中的语法错误、变量使用、函数定义、文件操作等方面的问题,并提供详细的错误信息和建议。使用Shell检查脚本可以提高脚本的质量和可维护性,减少错误和故障的发生。 ### 回答2: Linux系统中有一种特殊的脚本称为shell脚本,它可以用来进行一些自动化的检查和处理操作。通过shell脚本,我们可以灵活地进行各种检查任务,节约时间和人力成本。 首先,在创建shell脚本之前,我们需要确定要进行的具体检查任务。可以是检查系统的硬件配置、软件版本、服务状态、文件和目录权限等。然后,我们可以利用shell脚本语言来编写具体的检查脚本。 在Shell脚本中,我们可以使用各种命令和工具来完成检查任务。例如,可以使用grep命令来搜索特定的关键词,使用awk命令来解析文本数据,使用find命令来查找文件和目录等。通过这些命令和工具的组合和使用,我们可以灵活地进行各种检查操作。 此外,我们还可以使用条件语句和循环语句来实现更复杂的检查逻辑。例如,我们可以使用if语句来判断某个条件是否满足,根据不同的情况执行不同的命令。我们还可以使用for循环来遍历某个范围内的数据,执行相同的检查任务。 最后,在运行shell检查脚本之前,我们需要给予执行权限。可以使用chmod命令来修改脚本文件的权限,使其可以执行。然后,我们可以使用./命令来运行脚本。 总之,Linux系统中的shell脚本可以用于进行各种检查任务,通过灵活使用各种命令和工具,结合条件语句和循环语句,可以实现复杂的检查逻辑。这样,我们可以方便地进行系统检查,提高效率和准确性。 ### 回答3: Linux系统中的shell检查脚本是一段用于自动化执行任务和检查系统状态的代码。它可以通过命令行或者定时任务的方式运行,以达到自动监控和报告系统运行情况的目的。 shell检查脚本可以包含各种命令和逻辑判断,用于检查系统的各种指标和状态。比如,可以通过检查磁盘空间占用率、进程运行状态、网络连接情况等来监控系统健康度。当某个指标或状态达到预设的阈值时,脚本可以发出警报、记录日志或者采取其他预定的操作,以提醒系统管理员或采取相应的处理措施。 shell检查脚本的编写需要掌握相应的shell脚本语法和命令。可以使用if语句、for循环、while循环等控制结构来实现各种判断和循环操作。同时,还可以使用一些命令行工具如grep、awk、sed等来处理和过滤命令的输出。 一个好的shell检查脚本应该具备以下特点:简洁明了的逻辑结构、充分的错误处理机制、适当的日志输出和报警机制、良好的可读性和可维护性等。此外,还可以使用一些第三方工具或库来增强脚本的功能和易用性,如nagios、zabbix等监控系统。 总之,shell检查脚本Linux系统中具有重要的作用,通过自动化的方式检查系统状态和运行情况,可以提高系统的可靠性和可维护性,减少系统管理员的工作压力,并及时发现和解决系统问题,保障系统的稳定运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值