Linux/hp unix/AIX日常巡检脚本(转)
以下为Linux/hp unix/AIX日常巡检脚本,大家可以参考着进行改写,用于自己的服务器。
#!/usr/bin/ksh
syserrdate=`date +"%m/%d"`
errcount=0
STATUS=
HOSTS=`hostname`
SCRIPT=`basename $0`
REPORT="/tmp/report.txt"
#FS percent
FILESYSTEM_CHECK() {
FS=`df -k|sed '1d'|awk 'sub("%","",$4) {if ($4 > 80) print $7}'|xargs`
for i in $FS
do
echo "The $i filesystem percent more than %80 n"
done
}
#Active VG
VG_CHECK() {
echo "****************************ACTIVE VG****************************n"
ACVG=`lsvg -o|xargs`
echo "Active VG is: $ACVGn"
#LV_CHECK
echo "***************************PROBLEM LV****************************n"
BLV=`lsvg -l rootvg|grep -E "jfs|jfs2|raw"|grep -v 'N/A'|awk '{if ($6~/closed/ || $6~/stale/) print $1}'|xargs`
for i in $BLV
do
echo "The $i filesystem has a problem!!!n"
done
}
#Problem disk
DISK_CHECK() {
echo "***************************Problem disk***************************n"
disk=`lsvg -o|lsvg -ip|awk '$1~/hdisk/ && $2!~/active/ {print $1}'|xargs`
if [ "$disk" != "" ]
then
for i in $disk
do
echo "The $disk in $i has a problem!!!n"
done
fi
}
#error report
ERROR_CHECK() {
echo "***************************error report***************************n"
errdate=`errpt |grep -v IDENTIFIER |awk '{print $2}' |cut -c 1-4 |xargs`
for syserrFor1 in $errdate
do
if [ "$syserrFor1" = "$syserrdate" ]
then
newerrcount=`expr $errcount + 1`
errcount=$newerrcount
fi
done
if [ "$errcount" -eq 0 ]
then
echo "Today error is add $errcount yesterdayn"
else
echo "Today errors is add $errcount than yesterdayn"
fi
#error detail
errors=`errpt -dH -TPERM`
if [ -z "$errors" ]
then
echo "The Hardware is ${STATUS:-NORMAL}.n"
else
echo "The permanent error of Hardware as fllow:n`errpt -dH -TPERM`"
fi
}
#Check Database
DB_CHECK() {
su - oracle -c "lsnrctl status"|grep -i "no listener"
if [ $? = 1 ]
then
echo "The listener status is ${STATUS:-NORMAL}n"
else
echo "The listener has a problem!!!n"
fi
#echo "The listener status is :`su - oracle -c "lsnrctl status"`n"
#echo "Database status is:"
#su - oracle -c "sqlplus -s /nolog"<<EOF|sed '/^$/d'
#conn /as sysdba
#select log_mode,name,open_mode from v$database;
#quit
#EOF
su - oracle -c "sqlplus -s /nolog"<<EOF|sed '/^$/d' 2>/dev/null|grep -i "ORACLE not avail
able"
conn /as sysdba
select log_mode,name,open_mode from v$database;
quit
EOF
if [ $? = 0 ]
then
echo "The database not available!!!n"
else
echo "The database is NORMALn"
fi
}
#HBA card link
HARDWARE_CHECK() {
fget_config -Av|grep -i dacnone>>/dev/null
if [ $? -eq 0 ]
then
echo "The storage link has problem!!!"
else
echo "The storage link NORMAL!"
fi
}
#HACMP CHECK
HA_CHECK() {
echo "The HACMP status is: `lssrc -g cluster|sed '1d'`"
}
#CHECK SNA
SNA_CHECK() {
echo "The SNA LINK STATUS is:`sna -d l`"
echo "The SNA SESSION has problem as fllows:n"
sna -d sl|tail +4|awk 'BEGIN { OFS="t"; print "name","tactsess","actconw"}{if ($7 == 0 && $8 == 0) print $1, $7,$8}'
}
#CHECK CICS
CICS_CHECK() {
echo "The not active CICS is as fllows:n"
lssrc -a|grep cics|awk '$3!~/active/ {print $1}'
}
echo $SCRIPT >$REPORT
echo $HOSTS >> $REPORT
echo "IP ADDRESS:`ifconfig -a|grep -w inet|grep -v 127.0.0.1|awk '{print $2}'`" >> $REPORT
netstat -v|grep -E "STAT|Link" >>$REPORT
oslevel >> $REPORT
FILESYSTEM_CHECK >>$REPORT 2>&1
VG_CHECK >>$REPORT 2>&1
DISK_CHECK >>$REPORT 2>&1
ERROR_CHECK >>$REPORT 2>&1
DB_CHECK >>$REPORT 2>&1
HARDWARE_CHECK >>$REPORT 2>&1
lslpp -L|grep cluster >/dev/null
if [ $? -eq 0 ]
then
HA_CHECK >>$REPORT 2>&1
else
echo "This machine not install HACMP" >> $REPORT
fi
lslpp -L|grep "sna.rte" >/dev/null
if [ $? -eq 0 ]
then
SNA_CHECK >>$REPORT 2>&1
else
echo "This machine not install sna" >> $REPORT
fi
lslpp -L|grep -i cics >/dev/null
if [ $? -eq 0 ]
then
CICS_CHECK >>$REPORT 2>&1
else
echo "This machine not install cics" >> $REPORT
fi
========================================================
#! /bin/sh
cd /home/check
logname=check.`hostname`.`date +"%y%m%d%H%M"`.txt
echo "system log starting......" >$logname
echo "Filesystem disk use checking started" >>$logname
echo "#df -h" >>$logname
df -h >>$logname 2>&1
echo "filesystem disk ustage checking completed" >>$logname
echo "VG checking started." >>$logname
echo "check vg status" >>$logname
echo "# vgdisplay -v" >>$logname
vgdisplay -v >>$logname
echo "VG checking completed." >>$logname
echo "System log checking started.....">>$logname
echo "# tail -n 50 /var/log/messages" >>$logname
tail -n 50 /var/log/messages >>$logname
echo " showing root's mail" >>$logname
cat /var/spool/mail/root >mail.now
diff -e mail.ref mail.now |awk 'NR>1 {print $0}'>>$logname
mv mail.now mail.ref
echo "showing user login history since last day" >>$logname
last >last.now
diff -e last.ref last.now |awk 'NR>1 {print $0}'>>$logname
mv last.now last.ref >>$logname
echo "Crontab using and error log starting..">>$logname
crontab -l >>$logname
tail -n 30 /var/log/cron >>$logname
echo "#########################">>$logname
echo " System process checking started " >>$logname
echo "#dmesg">>$logname
dmesg >>$logname
echo "#ps -ef |grep defunc">>$logname
ps -ef |grep defunc >>$logname
echo "#service named status">>$logname
service named status >>$logname
echo " #uptime" >>$logname
uptime >>$logname
echo " System process checking completed ">>$logname
echo "#########################">>$logname
echo " networking checking Start.">>$logname
echo "#service network status " >>$logname
service network status >>$logname
echo "#netstat -in " >>$logname
netstat -in >>$logname
echo "#netstat -rn " >>$logname
netstat -rn >>$logname
echo "#netstat -ntapl " >>$logname
netstat -ntapl >>$logname
echo " networking checking completed " >>$logname
#echo "#########################">>$logname
#echo "performance and paging space checking start..." >>$logname
#top >top.now
#cat top.now>>$logname
echo "performance and paging space checking started" >>$logname
echo "#vmstat 1 10 " >>$logname
vmstat 1 10 >>$logname
echo "#free -l ">>$logname
free -l >>$logname
echo "performance and paging space checking completed" >>$logname
echo " showing command used history since last day " >>$logname
cat /.sh_history >sh_history.now
diff -e sh_history.ref sh_history.now |awk 'NR>1 {print $0}' >>$logname
mv sh_history.now sh_history.ref
echo " system logging completed " >>$logname
# now ftp to the log server
ftp -i -n <<EOF
open 10.0.99.5
user root vmware
lcd /home/check
put $logname
bye
EOF
cd /home/check
mv $logname /home/check/syslog/
Linux/hp unix/AIX日常巡检脚本(转)的更多相关文章
- linux日常巡检脚本
######################以下是脚本内容开始部分###################################### #!/bin/bash #set -x2012-02-2 ...
- 企业日常巡检shell脚本
Linux内部查看系统信息 $INTERNET192忽略 [root@ mysql-master ~]# ip a|grep eth0|grep inet|cut -d' ' -f6|cut -d'/ ...
- Linux 编写安全巡检脚本
Linux 编写安全巡检脚本 检测/etc/passwd,/etc/shadow文件是否锁定 检测/etc/login.defs配置文件中密码有效期设置是否得当 检查所有用户账户(非系统账户)中是否存 ...
- 双机倒换(NewStartHA,SKYbility,hacmp,hp unix双机)
1.Suse linux (NewStartHA): # cli cli:~>service-migrate Select service to migrate: ...
- 从Linux 与 Unix 异同,看开源世界的发展!
从Linux 与 Unix 异同,看开源世界的发展! 如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中.数十年来,它一直是数据中心的重要参与者,尽管很难找到明确 ...
- Linux 与 Unix 到底有什么不同?区别在哪?
Linux 与 Unix 到底有什么不同?区别在哪? 如果你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中.数十年来,它一直是数据中心的重要参与者,尽管很难找到明确 ...
- 资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档
文章转自:https://linux.cn/article-10311-1.html 手册页(man)是由系统管理员和 IT 技术开发人员写的,更多的是为了作为参考而不是教你如何使用.手册页对于已经熟 ...
- linux基础-linux和unix的区别
有时候我们对天天使用的Linux指令,只知道怎么用,却分不清概念用法区别,我觉得很有必要整理整理大家熟视无睹的一些linux概念区别. 首先说说unix和linux的区别: linux和unix的最大 ...
- 1.Linux和Unix区别
整理来源于网络:http://blog.csdn.net/xiaojianpitt/article/details/6377419 有很多初学Linux的人比较关心Linux和windows的区别,这 ...
随机推荐
- GCD应用场景
1.计算文件大小放在子线程中中计算,计算完了,回到主线程更新UI
- 为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接 口.实现这两者的目的是为了向更上一层提供硬件访问接口,即 ...
- html标签中head中两个标签的作用
<meta name="render" content="webkit"> //浏览器使用急速模式打开 <meta http-equi ...
- Linux中的挂载和卸载
mkdir /home/xxx 创建挂载点 mount /dev/cdrom /home/xxx 把cdrom中的内容挂载到xxx目录 umount /dev/cdrom 卸载 /dev/sr ...
- JavaScript的异步机制
我们经常说JS是单线程的,比如node.js研讨会上大家都说JS的特色之一是单线程的,这样使JS更简单明了,可是大家真的理解所谓JS的单线程机制吗?单线程时,基于事件的异步机制又该当如何 1 先看下两 ...
- Android应用程序基础
Android程序使用Java语言编写.Android开发套件把数据.资源文件和Java代码编译到一个.以.apk为后缀名的Android压缩包中.一个单独的apk文件中的所有代码被认为是一个andr ...
- 详细版在虚拟机安装和使用hadoop分布式集群
集群模式: 一台master 192.168.85.2 一台slave 192.168.85.3 jdk jdk1.8.0_74(版本不重要,看喜欢) hadoop版本 2.7.2(版本不重要,2. ...
- 一个java解析xml的简单例子
java解析xml,主要是通过Dom4j实现的,很多场合都会用到此功能,需要解析XML文件. 下面是一个简单的解析XML文件的例子: import java.util.Iterator; import ...
- HTML5的兼容问题以及调用js文件的方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- adb not responding. if you'd like to
在安装genymotion后启动工程报此错误. 解决方案:把其他虚拟机删掉,然后用genymotion新建一个,启动工程OK.