C001 Linux系统巡检脚本

当服务器达到一定数量级时,使用脚本巡检就显得非常必要!

脚本文件放在D:\OScheck目录下,截图如下:

CRT是SecureCRT软件,LOGS存放生成的日志文件,ServerList是服务器列表

 

DAILYCheck.bat文件内容:

REM DAILYCheck.bat
@echo off
Setlocal ENABLEDELAYEDEXPANSION
Set strDate=%date:~0,4%%date:~5,2%%date:~8,2%
REM=================================================================================
cls
color 0a
title  巡检工具
:begin
cls
echo.
%~d0
cd %~dp0
set TempDir=d:\OScheck\temp
if not exist  %TempDir% mkdir %TempDir%
echo.
echo             ﹎.巡检工具——服务器巡检.﹎    
echo.
echo            ╔═════════════╗
echo            ║  1、服务器巡检(每日)   ║
echo            ║  2、服务器巡检(每周)   ║
echo            ║  3、服务器巡检(每月)   ║
echo            ╚═════════════╝
echo                0、退出程序!
echo.
set num=99
set /p num=" 请输入选择数字,然后按回车:"
if %num%==1 goto bat1
if %num%==2 goto bat2
if %num%==3 goto bat3
if %num%==0 exit
echo.
goto begin

:bat1
set SvrList=d:\OScheck\ServerList\svr.list
set Checklog=%TempDir%\os_dailycheck_%strDate%.log
set CheckDir=d:\OSCheck\Log_%strDate%\Date
goto end
:bat2
set SvrList=d:\OScheck\ServerList\svrWeek.list
set Checklog=%TempDir%\os_dailycheck_%strDate%_Week.log
set CheckDir=d:\OSCheck\Log_%strDate%\Week
goto end
:bat3
set SvrList=d:\OScheck\ServerList\svrMonth.list
set Checklog=%TempDir%\os_dailycheck_%strDate%_Month.log
set CheckDir=d:\OSCheck\Log_%strDate%\Month
goto end
:end

echo.
echo  :::Start OS Daily checking on %date%
echo  :::Start OS Daily checking on %date% >> %checklog%
echo.
echo  ===================================================================
echo.
For /F "tokens=1,2,3,4,5 delims=," %%i in (%SvrList%) do (
echo %date%:: %%k :: %%i :: %%j >> %checklog%
echo  ==================主机: %%k ,开始检测,请稍等==================
"D:\OScheck\CRT\SecureCRT.exe" /TITLEBAR "OSCheck:%%k:%%i:%%j"/NOMENU /NOTOOLBAR /SCRIPT D:\OScheck\Dailycheck.vbs /ARG %%l /ARG %%m /ARG %%i /ARG %%j >> %checklog%
echo  ==================主机: %%k ,完成检测,请核查==================
echo.
)

REM - 检查完毕后将下载到本地的检查日志移到一个目录中。
if not exist  %CheckDir% mkdir %CheckDir%
Move /Y %TempDir%\*.log %checkDir%
goto begin

Dailycheck.vbs文件内容:

# $language = "VBScript"
# $interface = "1.0"

Sub Main
   dim objTab, objSFTPTab
   dim strHost, strUserid, strUserPwd, strRootPwd, strPort
   dim strConnect
   IF crt.arguments.count <> 4 then
       crt.Daiglog.MessageBox("No Enough Paratmeters!")
       crt.quit
       exit sub
   ELSE
   strUserid = crt.arguments(0)
   strUserPwd = crt.arguments(1)
        strHost = crt.arguments(2)
        strPort = crt.arguments(3)
   END IF
  
'======================================================================================================
   'Connect to a host and start OS check daily 
   strConnect="/SSH2 /P " & strPort & " /L " & strUserId & " /PASSWORD " & strUserPwd & " " & strHost 
  set objTab=crt.session.connectInTab(strConnect)
  objTab.screen.synchronous = True

  'Create an SFTP tab associated with the existing tab
   set objSFTPTab=objTab.connectSFTP
  'Wait for the SFTP tab to be ready for input
  objSFTPTab.screen.synchronous = True
  crt.Sleep 300
  objSFTPTab.screen.Send vbcr
  objSFTPTab.Screen.WaitForString "sftp>"
  objSFTPTab.Screen.Send "lcd D:\OScheck\"  & vbcr
  objSFTPTab.Screen.WaitForString "sftp>"
  objSFTPTab.Screen.Send "cd /root/gyl/OSCheck/"  & vbcr
  objSFTPTab.Screen.WaitForString "sftp>"
  objSFTPTab.Screen.Send "put -a oscheck.sh"  & vbcr
  objSFTPTab.screen.WaitForString "Uploading"
  objSFTPTab.screen.WaitForString "sftp>"

  objTab.activate()
   crt.sleep 10
   objTab.screen.waitforstring("#")
   objTab.screen.send("cd /root/gyl/OSCheck/") & chr(13)
   objTab.screen.waitforstring("OSCheck") 
   objTab.Screen.send("rm -f /root/gyl/OSCheck/*.log ; echo r000") & chr(13)
   objTab.Screen.waitForString("r000")
   objTab.screen.send("chmod +x /root/gyl/OSCheck/oscheck.sh") & chr(13)
   objTab.screen.waitforstring("OSCheck") 
   objTab.screen.send("sh /root/gyl/OSCheck/oscheck.sh") & chr(13)
   objTab.screen.waitforstring("successfully")

   objSFTPTab.activate()
   ' download the check log to d:\OSCheck\temp from remote working Directory /root/gyl/OSCheck/
  objSFTPTab.Screen.Send "lcd D:\OScheck\temp\"  & vbcr
  objSFTPTab.Screen.WaitForString "sftp>"
   objSFTPTab.Screen.Send ("get -a /root/gyl/OSCheck/*.log" ) & vbcr
   objSFTPTab.screen.WaitForString "Downloading"
   objSFTPTab.screen.WaitForString "sftp>"
   'Close the SFTPTab
   objSFTPTab.screen.send ("exit") & vbcr
   
   objTab.activate()
   objTab.Screen.send("echo r001") & chr(13)
   objTab.Screen.WaitForString("r001") 
   objTab.Session.Disconnect
   'objTab.close
 
   'Done, quit SecureCRT
    crt.quit
End Sub

oscheck.sh文件内容:

#!/bin/sh
#================================================================================================
# This Scripts is used to collect Linux Configuration Data and health check daily.
#
#================================================================================================
# -----------------------------------------------------------------------------------------------
# Part 1 - Get the Basic Information
# Part 2 - Get the Detail Information
# Section 1 - OS Specific Release Information
# Section 2 - System Information
# Section 3 - Filesystem Information
# Section 4 - VG Information
# Section 5 - Services Configuration
# Section 6 - The last 40 lines in syslog
# Section 7 - Root's Mail (Status closed)
# Section 8 - Login History since Last Day
# Section 9 - Root Crontab and Error Log
# Section 10 - Check Process
# Sec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值