主机巡检脚本:OSWatcher.sh
主机巡检脚本:OSWatcher.sh
2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善。
注意:
经测试,普通用户执行脚本可以顺利执行前9项检查;
第10项,普通用户检查/var/log/messages很可能没有读权限,如有需要巡检此系统日志,建议切换root用户执行此脚本。
#!/bin/bash
echo ""
echo "OSWatcher Version:2.0.0"
echo ""
#Create Time:--
#Update Time:--
######################################################################
#设置命令的路径,防止命令找不到路径
PATH=$PATH:/usr/sbin/
export PATH
echo "the PATH is:$PATH"
######################################################################
PLATFORM=`/bin/uname`
#
######################################################################
# Create log subdirectories if they don't exist
######################################################################
if [ ! -d archive ]; then
mkdir archive
fi case $PLATFORM in
Linux)
DF='df -h'
MEMINFO='free -m'
MPSTAT='mpstat 1 3'
TOP='eval top -b -n 1 | head -50'
VMSTAT='vmstat 1 3'
IOSTAT='iostat -d -x -k 1 5'
PSELF='ps -elf'
BOOTLOG='tail -500 /var/log/boot.log'
SYSLOG='dmesg'
MESSAGE='tail -500 /var/log/messages'
;;
esac
hostn=`hostname`
hour=`date +'%m.%d.%y.%H00.dat'`
echo "`date` Collect">archive/${hostn}_$hour
######################################################################
# Test for discovery of os utilities. Notify if not found.
######################################################################
echo ""
echo "Starting Data Collection..."
echo "" case $PLATFORM in
Linux)
$DF > /dev/null >&
if [ $? = ]; then
echo "DF found on your system."
echo "--1.DF==========================">>archive/${hostn}_$hour
$DF>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... DF not found on your system."
MEMFOUND=
fi $MEMINFO > /dev/null >&
if [ $? = ]; then
echo "meminfo found on your system."
echo "--2.MEMINFO==========================">>archive/${hostn}_$hour
$MEMINFO>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... /proc/meminfo not found on your system."
MEMFOUND=
fi $MPSTAT > /dev/null >&
if [ $? = ]; then
echo "MPSTAT found on your system."
echo "--3.MPSTAT==========================">>archive/${hostn}_$hour
$MPSTAT>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... MPSTAT not found on your system."
MEMFOUND=
fi $TOP > /dev/null >&
if [ $? = ]; then
echo "TOP found on your system."
echo "--4.TOP==========================">>archive/${hostn}_$hour
$TOP>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... TOP not found on your system."
MEMFOUND=
fi $VMSTAT > /dev/null >&
if [ $? = ]; then
echo "VMSTAT found on your system."
echo "--5.VMSTAT==========================">>archive/${hostn}_$hour
$VMSTAT>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... VMSTAT not found on your system."
MEMFOUND=
fi $IOSTAT > /dev/null >&
if [ $? = ]; then
echo "IOSTAT found on your system."
echo "--6.IOSTAT==========================">>archive/${hostn}_$hour
$IOSTAT>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... IOSTAT not found on your system."
MEMFOUND=
fi $PSELF > /dev/null >&
if [ $? = ]; then
echo "PSELF found on your system."
echo "--7.PSELF==========================">>archive/${hostn}_$hour
$PSELF>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... PSELF not found on your system."
MEMFOUND=
fi $BOOTLOG > /dev/null >&
if [ $? = ]; then
echo "BOOTLOG found on your system."
echo "--8.BOOTLOG==========================">>archive/${hostn}_$hour
$BOOTLOG>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... BOOTLOG not found on your system."
MEMFOUND=
fi $SYSLOG > /dev/null >&
if [ $? = ]; then
echo "SYSLOG found on your system."
echo "--9.SYSLOG==========================">>archive/${hostn}_$hour
$SYSLOG>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... SYSLOG not found on your system."
MEMFOUND=
fi $MESSAGE > /dev/null >&
if [ $? = ]; then
echo "MESSAGE found on your system."
echo "--10.MESSAGE==========================">>archive/${hostn}_$hour
$MESSAGE>>archive/${hostn}_$hour
MEMFOUND=
else
echo "Warning... MESSAGE not found on your system."
MEMFOUND=
fi ;;
esac echo ""
echo "Discovery completed."
echo "Collection completed."
echo "The Collected result saved in ./archive/${hostn}_$hour."
echo ""
主机巡检脚本:OSWatcher.sh的更多相关文章
- 巡检脚本OS+Oracle
巡检脚本 主机巡检脚本:OSWatcher.sh Oracle巡检脚本:ORAWatcher.sh 脚本使用方法 1.建立脚本放置目录 # mkdir /var/collect 2.把脚本ORAWat ...
- Oracle巡检脚本:ORAWatcher.sh
Oracle巡检脚本:ORAWatcher.sh #!/usr/bin/ksh echo "" echo "ORAWatcher Version:1.0.1" ...
- Linux/hp unix/AIX日常巡检脚本(转)
以下为Linux/hp unix/AIX日常巡检脚本,大家可以参考着进行改写,用于自己的服务器. #!/usr/bin/ksh syserrdate=`date +"%m/%d"` ...
- linux日常巡检脚本
######################以下是脚本内容开始部分###################################### #!/bin/bash #set -x2012-02-2 ...
- 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛
非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛 Glenn Berry 大牛会对这个脚本持续更新 -- SQL Server 2012 Diagnost ...
- Tomcat重启脚本restart.sh停止脚本stop.sh
Tomcat重启脚本restart.sh停止脚本stop.sh Tomcat本身提供了 startup.sh(启动)shutdown.sh(关闭)脚本,我们在部署中经常会出现死进程形象,无法杀掉进程需 ...
- Tomcat启动脚本catalina.sh
1 - 概述脚本catalina.sh用于启动和关闭tomcat服务器,是最关键的脚本另外的脚本startup.sh和shutdown.sh都是使用不同的参数调用了该脚本该脚本的使用方法如下(引自该脚 ...
- ubuntu下的第一个脚本file.sh
1.新建空文档,写入shell命令: #!/bin/sh cd /home/plg ./usb 第一行一定要有,一开始参考网上写的#!/usr/bin/sh,会提示错误 bash: ./file.sh ...
- Linux跑脚本用sh和./有什么区别?(转)
sh是一个shell.运行sh a.sh,表示我使用sh来解释这个脚本:如果我直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器,如果没指定,那么就用当前系统默认的shell(大多数linu ...
随机推荐
- Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...
- ADO.NET数据访问模板整理
/// <summary> /// 数据访问类:hi_test /// </summary> public partial class TestDA { public Test ...
- java-如何用eclipse打包jar
Eclipse通过导出的方式(右键单击项目,之后选择Export)打包java类文件生成jar包. 方法一:(在项目工程没有引用外部jar包时,直接导出) 选中工程---->右键,Export. ...
- SQL执行效率2-执行计划
以下语句可以进行SQL 语句执行时间分析,两个Go之间就是SQL查询语句 use Work--数据库名 go set statistics profile on set statistics io o ...
- 如何用js得到当前页面的url信息方法(JS获取当前网址信息)
设置或获取对象指定的文件名或路径. alert(window.location.pathname) 设置或获取整个 URL 为字符串. alert(window.location.href); 设置或 ...
- 2016/11/16 周三 <使用LocalStore记住用户密码方法示例>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Unity3D 物体跟随鼠标旋转
float speed=1000f; void Update () { if (Input.GetMouseButton (0)) { transform.Rotate (0,-Input.GetAx ...
- PHP 真正多线程的使用
以前使用curl的多线程并不是真正的多线程,只是一种模拟的多线程,现在使用pthreads来实现真正意义上的多线程. 下载: windows下: http://windows.php.net/down ...
- 浅谈Android应用保护(一):Android应用逆向的基本方法
对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...
- 仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二)
题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的欢迎,于是下定决心准备把它写成一个系列,以满足更多求知若渴的同学们.蒋金楠老师已 ...