当前位置:首页 >> 主机教程

常见SEO云服务器 云数据库Linux服务器日常巡检脚本分享

发布时间:2025-12-13 12:26:28 作者:熊猫主机教程网
简介 云虚拟主机 云服务器 Linux 系统日常巡检脚本,巡检内容包含了,磁盘,内存cpu进程文件更改用户登录等一系列的操作 直接用就行了。 google的云服务器 报告以邮件发送到邮箱 在log下生成巡检报告。 阿里云9.9元服务器!/bin/bash@Author: HanWei@Date: 2020-03-16 09:56:57@Last Modified by: HanWei@La

云虚拟主机 云服务器

Linux 系统日常巡检脚本,巡检内容包含了,磁盘内存cpu进程文件更改用户登录等一系列的操作 直接用就行了。

google的云服务器

报告以邮件发送到邮箱 在log下生成巡检报告。

阿里云9.9元服务器

!/bin/bash@Author: HanWei@Date: 2020-03-16 09:56:57@Last Modified by: HanWei@Last Modified time: 2020-03-16 11:06:31@E-mail: han_wei_95@163.com!/bin/bash主机信息每日巡检IPADDR=$(ifconfig eth0|grepinet addr|awk -F[ :]{print $13})环境变量PATH没设好,在cron里执行时有很多命令会找不到exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binsource/etc/profile [ $(id -u) -gt 0 ] &&echo"请用root用户执行此脚本!"&&exit1 centosVersion=$(awk{print $(NF-1)}/etc/redhat-release) VERSION="2020-03-16"日志相关PROGPATH=`echo$0| sed -es,[\\/][^\\/][^\\/]*$,,` [ -f$PROGPATH] && PROGPATH="."LOGPATH="$PROGPATH/log"[ -e$LOGPATH] || mkdir$LOGPATHRESULTFILE="$LOGPATH/HostDailyCheck-$IPADDR-`date +%Y%m%d`.txt"定义报表的全局变量report_DateTime=""日期 okreport_Hostname=""主机名 okreport_OSRelease=""发行版本 okreport_Kernel=""内核 okreport_Language=""语言/编码 okreport_LastReboot=""最近启动时间 okreport_Uptime=""运行时间(天) okreport_CPUs=""CPU数量 okreport_CPUType=""CPU类型 okreport_Arch=""CPU架构 okreport_MemTotal=""内存总容量(MB) okreport_MemFree=""内存剩余(MB) okreport_MemUsedPercent=""内存使用率% okreport_DiskTotal=""硬盘总容量(GB) okreport_DiskFree=""硬盘剩余(GB) okreport_DiskUsedPercent=""硬盘使用率% okreport_InodeTotal=""Inode总量 okreport_InodeFree=""Inode剩余 okreport_InodeUsedPercent=""Inode使用率 okreport_IP=""IP地址 okreport_MAC=""MAC地址 okreport_Gateway=""默认网关 okreport_DNS=""DNS okreport_Listen=""监听 okreport_Selinux=""Selinux okreport_Firewall=""防火墙 okreport_USERs=""用户 okreport_USEREmptyPassword=""空密码用户 okreport_USERTheSameUID=""相同ID的用户 okreport_PasswordExpiry=""密码过期(天) okreport_RootUser=""root用户 okreport_Sudoers=""sudo授权 okreport_SSHAuthorized=""SSH信任主机 okreport_SSHDProtocolVersion=""SSH协议版本 okreport_SSHDPermitRootLogin=""允许root远程登录 okreport_DefunctProsess=""僵尸进程数量 okreport_SelfInitiatedService=""自启动服务数量 okreport_SelfInitiatedProgram=""自启动程序数量 okreport_RuningService=""运行中服务数 okreport_Crontab=""计划任务数 okreport_Syslog=""日志服务 okreport_SNMP=""SNMP OKreport_NTP=""NTP okreport_JDK=""JDK版本 okfunctionversion(){echo""echo""echo"系统巡检脚本:Version$VERSION"}functiongetCpuStatus(){echo""echo""echo" CPU检查 "Physical_CPUs=$(grep"physical id"/proc/cpuinfo| sort | uniq | wc -l) Virt_CPUs=$(grep"processor"/proc/cpuinfo | wc -l) CPU_Kernels=$(grep"cores"/proc/cpuinfo|uniq| awk -F:{print $2}) CPU_Type=$(grep"model name"/proc/cpuinfo | awk -F:{print $2}| sort | uniq) CPU_Arch=$(uname -m)echo"物理CPU个数:$Physical_CPUs"echo"逻辑CPU个数:$Virt_CPUs"echo"每CPU核心数:$CPU_Kernels"echo" CPU型号:$CPU_Type"echo" CPU架构:$CPU_Arch"报表信息report_CPUs=$Virt_CPUsCPU数量report_CPUType=$CPU_TypeCPU类型report_Arch=$CPU_ArchCPU架构}functiongetMemStatus(){echo""echo""echo" 内存检查 "if[[$centosVersion< 7 ]];thenfree -moelsefree -hfi报表信息MemTotal=$(grep MemTotal /proc/meminfo| awk{print $2})KBMemFree=$(grep MemFree /proc/meminfo| awk{print $2})KBletMemUsed=MemTotal-MemFree MemPercent=$(awk"BEGIN {if($MemTotal==0){printf 100}else{printf \"%.2f\",$MemUsed*100/$MemTotal}}") report_MemTotal="$((MemTotal/1024))""MB"内存总容量(MB)report_MemFree="$((MemFree/1024))""MB"内存剩余(MB)report_MemUsedPercent="$(awk "BEGIN {if($MemTotal==0){printf 100}else{printf \"%.2f\",$MemUsed*100/$MemTotal}}")""%" 内存使用率% } function getDiskStatus(){ echo "" echo "" echo "磁盘检查 "df -hiP | seds/Mounted on/Mounted/> /tmp/inode df -hTP | seds/Mounted on/Mounted/> /tmp/disk join /tmp/disk /tmp/inode | awk{print $1,$2,"|",$3,$4,$5,$6,"|",$8,$9,$10,$11,"|",$12}| column -t报表信息diskdata=$(df -TP | sed1d| awk$2!="tmpfs"{print})KBdisktotal=$(echo"$diskdata"| awk{total+=$3}END{print total})KBdiskused=$(echo"$diskdata"| awk{total+=$4}END{print total})KBdiskfree=$((disktotal-diskused))KBdiskusedpercent=$(echo$disktotal$diskused| awk{if($1==0){printf 100}else{printf "%.2f",$2*100/$1}}) inodedata=$(df -iTP | sed1d| awk$2!="tmpfs"{print}) inodetotal=$(echo"$inodedata"| awk{total+=$3}END{print total}) inodeused=$(echo"$inodedata"| awk{total+=$4}END{print total}) inodefree=$((inodetotal-inodeused)) inodeusedpercent=$(echo$inodetotal$inodeused| awk{if($1==0){printf 100}else{printf "%.2f",$2*100/$1}}) report_DiskTotal=$((disktotal/1024/1024))"GB"硬盘总容量(GB)report_DiskFree=$((diskfree/1024/1024))"GB"硬盘剩余(GB)report_DiskUsedPercent="$diskusedpercent""%"硬盘使用率%report_InodeTotal=$((inodetotal/1000))"K"Inode总量report_InodeFree=$((inodefree/1000))"K"Inode剩余report_InodeUsedPercent="$inodeusedpercent""%"Inode使用率%}functiongetSystemStatus(){echo""echo""echo" 系统检查 "if[ -e /etc/sysconfig/i18n ];thendefault_LANG="$(grep "LANG=" /etc/sysconfig/i18n | grep -v "^" | awk -F " {print $2})"elsedefault_LANG=$LANGfiexportLANG="en_US.UTF-8"Release=$(cat /etc/redhat-release 2>/dev/null) Kernel=$(uname -r) OS=$(uname -o) Hostname=$(uname -n) SELinux=$(/usr/sbin/sestatus | grep"SELinux status: "| awk{print $3}) LastReboot=$(who -b | awk{print $3,$4}) uptime=$(uptime | seds/.*up \([^,]*\), .*/\1/)echo" 系统:$OS"echo" 发行版本:$Release"echo" 内核:$Kernel"echo" 主机名:$Hostname"echo" SELinux:$SELinux"echo"语言/编码:$default_LANG"echo" 当前时间:$(date +%F %T)"echo" 最后启动:$LastReboot"echo" 运行时间:$uptime"报表信息report_DateTime=$(date +"%F %T")日期report_Hostname="$Hostname"主机名report_OSRelease="$Release"发行版本report_Kernel="$Kernel"内核report_Language="$default_LANG"语言/编码report_LastReboot="$LastReboot"最近启动时间report_Uptime="$uptime"运行时间(天)report_Selinux="$SELinux"exportLANG="$default_LANG"}functiongetServiceStatus(){echo""echo""echo" 服务检查 "echo""if[[$centosVersion> 7 ]];thenconf=$(systemctl list-unit-files --type=service --state=enabled --no-pager | grep"enabled") process=$(systemctl list-units --type=service --state=running --no-pager | grep".service")报表信息report_SelfInitiatedService="$(echo "$conf" | wc -l)"自启动服务数量report_RuningService="$(echo "$process" | wc -l)"运行中服务数量elseconf=$(/sbin/chkconfig | grep -E":on|:启用") process=$(/sbin/service --status-all 2>/dev/null | grep -E"is running|正在运行")报表信息report_SelfInitiatedService="$(echo "$conf" | wc -l)"自启动服务数量report_RuningService="$(echo "$process" | wc -l)"运行中服务数量fiecho"服务配置"echo"--------"echo"$conf"| column -techo""echo"正在运行的服务"echo"--------------"echo"$process"}functiongetAutoStartStatus(){echo""echo""echo" 自启动检查 "conf=$(grep -v"^"/etc/rc.d/rc.local| sed/^$/d)echo"$conf"报表信息report_SelfInitiatedProgram="$(echo $conf | wc -l)"自启动程序数量}functiongetLoginStatus(){echo""echo""echo" 登录检查 "last | head }functiongetNetworkStatus(){echo""echo""echo" 网络检查 "if[[$centosVersion< 7 ]];then/sbin/ifconfig -a | grep -v packets | grep -v collisions | grep -v inet6elseip aforiin$(ip link | grep BROADCAST | awk -F:{print $2});doip add show$i| grep -E"BROADCAST|global"| awk{print $2}| tr\n;echo"";donefiGATEWAY=$(ip route | grep default | awk{print $3}) DNS=$(grep nameserver /etc/resolv.conf| grep -v""| awk{print $2}| tr\n,| seds/,$//)echo""echo"网关:$GATEWAY"echo" DNS:$DNS"报表信息IP=$(ip -f inet addr | grep -v 127.0.0.1 | grep inet | awk{print $NF,$2}| tr\n,| seds/,$//) MAC=$(ip link | grep -v"LOOPBACK\|loopback"| awk{print $2}| sedN;s/\n//| tr\n,| seds/,$//) report_IP="$IP"IP地址report_MAC=$MACMAC地址report_Gateway="$GATEWAY"默认网关report_DNS="$DNS"DNS}functiongetListenStatus(){echo""echo""echo" 监听检查 "TCPListen=$(ss -ntul | column -t)echo"$TCPListen"报表信息report_Listen="$(echo "$TCPListen"| sed 1d | awk /tcp/ {print $5} | awk -F: {print $NF} | sort | uniq | wc -l)"}functiongetCronStatus(){echo""echo""echo" 计划任务检查 "Crontab=0forshellin$(grep -v"/sbin/nologin"/etc/shells);doforuserin$(grep"$shell"/etc/passwd| awk -F:{print $1});docrontab -l -u$user>/dev/null 2>&1 status=$?if[$status-eq 0 ];thenecho"$user"echo"--------"crontab -l -u$userletCrontab=Crontab+$(crontab -l -u$user| wc -l)echo""fidonedone计划任务find /etc/cron* -typef | xargs -i ls -l {} | column -tletCrontab=Crontab+$(find /etc/cron* -typef | wc -l)报表信息report_Crontab="$Crontab"计划任务数}functiongetHowLongAgo(){计算一个时间戳离现在有多久了datetime="$*"[ -z"$datetime"] &&echo"错误的参数:getHowLongAgo() $*"Timestamp=$(date +%s -d"$datetime")转化为时间戳Now_Timestamp=$(date +%s) Difference_Timestamp=$(($Now_Timestamp-$Timestamp)) days=0;hours=0;minutes=0; sec_in_day=$((60*60*24)); sec_in_hour=$((60*60)); sec_in_minute=60while(( $(($Difference_Timestamp-$sec_in_day)) > 1 ))doletDifference_Timestamp=Difference_Timestamp-sec_in_dayletdays++donewhile(( $(($Difference_Timestamp-$sec_in_hour)) > 1 ))doletDifference_Timestamp=Difference_Timestamp-sec_in_hourlethours++doneecho"$days$hours小时前"}functiongetUserLastLogin(){获取用户最近一次登录的时间,含年份很遗憾last命令不支持显示年份,只有"last -t YYYYMMDDHHMMSS"表示某个时间之间的登录,我们只能用最笨的方法了,对比今天之前和今年元旦之前(或者去年之前和前年之前……)某个用户登录次数,如果登录统计次数有变化,则说明最近一次登录是今年。username=$1:${username:="`whoami`"}thisYear=$(date +%Y) oldesYear=$(last | tail -n1 | awk{print $NF})while(($thisYear>=$oldesYear));dologinBeforeToday=$(last$username| grep$username| wc -l) loginBeforeNewYearsDayOfThisYear=$(last$username-t$thisYear"0101000000"| grep$username| wc -l)if[$loginBeforeToday-eq 0 ];thenecho"从未登录过"breakelif[$loginBeforeToday-gt$loginBeforeNewYearsDayOfThisYear];thenlastDateTime=$(last -i$username| head -n1 | awk{for(i=4;i<(NF-2);i++)printf"%s ",$i})"$thisYear"格式如: Sat Nov 2 20:33 2015lastDateTime=$(date"+%Y-%m-%d %H:%M:%S"-d"$lastDateTime")echo"$lastDateTime"breakelsethisYear=$((thisYear-1))fidone}functiongetUserStatus(){echo""echo""echo" 用户检查 "/etc/passwd 最后修改时间pwdfile="$(cat /etc/passwd)"Modify=$(stat/etc/passwd | grep Modify | tr.| awk{print $2,$3})echo"/etc/passwd 最后修改时间:$Modify($(getHowLongAgo $Modify))"echo""echo"特权用户"echo"--------"RootUser=""foruserin$(echo"$pwdfile"| awk -F:{print $1});doif[ $(id -u$user) -eq 0 ];thenecho"$user"RootUser="$RootUser,$user"fidoneecho""echo"用户列表"echo"--------"USERs=0echo"$( echo "用户名 UID GID HOME SHELL 最后一次登录" for shell in $(grep -v "/sbin/nologin" /etc/shells);do for username in$(grep "$shell" /etc/passwd| awk -F: {print $1});do userLastLogin="$(getUserLastLogin$username)" echo "$pwdfile" | grep -w "$username" |grep -w "$shell"| awk -F: -v lastlogin="$(echo"$userLastLogin"| tr_)" {print$1,$3,$4,$6,$7,lastlogin} done let USERs=USERs+$(echo "$pwdfile" | grep "$shell"| wc -l)done )"| column -techo""echo"空密码用户"echo"----------"USEREmptyPassword=""forshellin$(grep -v"/sbin/nologin"/etc/shells);doforuserin$(echo"$pwdfile"| grep"$shell"| cut -d: -f1);dor=$(awk -F:$2=="!!"{print $1}/etc/shadow | grep -w$user)if[ ! -z$r];thenecho$rUSEREmptyPassword="$USEREmptyPassword,"$rfidonedoneecho""echo"相同ID的用户"echo"------------"USERTheSameUID=""UIDs=$(cut -d: -f3 /etc/passwd | sort | uniq -c | awk$1>1{print $2})foruidin$UIDs;doecho-n"$uid"; USERTheSameUID="$uid"r=$(awk -F:ORS="";$3=="$uid"{print ":",$1}/etc/passwd)echo"$r"echo""USERTheSameUID="$USERTheSameUID$r,"done报表信息report_USERs="$USERs"用户report_USEREmptyPassword=$(echo$USEREmptyPassword| seds/^,//) report_USERTheSameUID=$(echo$USERTheSameUID| seds/,$//) report_RootUser=$(echo$RootUser| seds/^,//)特权用户}functiongetPasswordStatus {echo""echo""echo" 密码检查 "pwdfile="$(cat /etc/passwd)"echo""echo"密码过期检查"echo"------------"result=""forshellin$(grep -v"/sbin/nologin"/etc/shells);doforuserin$(echo"$pwdfile"| grep"$shell"| cut -d: -f1);doget_expiry_date=$(/usr/bin/chage -l$user| grepPassword expires| cut -d: -f2)if[[$get_expiry_date=never||$get_expiry_date=never]];thenprintf"%-15s 永不过期\n"$userresult="$result,$user:never"elsepassword_expiry_date=$(date -d"$get_expiry_date""+%s") current_date=$(date"+%s") diff=$(($password_expiry_date-$current_date))letDAYS=$(($diff/(60*60*24)))printf"%-15s %s天后过期\n"$user$DAYSresult="$result,$user:$DAYSdays"fidonedonereport_PasswordExpiry=$(echo$result| seds/^,//)echo""echo"密码策略检查"echo"------------"grep -v""/etc/login.defs | grep -E"PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_MIN_LEN|PASS_WARN_AGE"}functiongetSudoersStatus(){echo""echo""echo" Sudoers检查 "conf=$(grep -v"^"/etc/sudoers| grep -v"^Defaults"| sed/^$/d)echo"$conf"echo""报表信息report_Sudoers="$(echo $conf | wc -l)"}functiongetInstalledStatus(){echo""echo""echo" 软件检查 "rpm -qa --last | head | column -t }functiongetProcessStatus(){echo""echo""echo" 进程检查 "if[ $(ps -ef | grep defunct | grep -v grep | wc -l) -ge 1 ];thenecho""echo"僵尸进程";echo"--------"ps -ef | head -n1 ps -ef | grep defunct | grep -v grepfiecho""echo"内存占用TOP10"echo"-------------"echo-e"PID %MEM RSS COMMAND$(ps aux | awk {print $2, $4, $6, $11} | sort -k3rn | head -n 10 )"| column -techo""echo"CPU占用TOP10"echo"------------"top b -n1 | head -17 | tail -11报表信息report_DefunctProsess="$(ps -ef | grep defunct | grep -v grep|wc -l)"}functiongetJDKStatus(){echo""echo""echo" JDK检查 "java -version 2>/dev/nullif[ $? -eq 0 ];thenjava -version 2>&1fiecho"JAVA_HOME=\"$JAVA_HOME\""报表信息report_JDK="$(java -version 2>&1 | grep version | awk {print $1,$3} | tr -d ")"}functiongetSyslogStatus(){echo""echo""echo" syslog检查 "echo"服务状态:$(getState rsyslog)"echo""echo"/etc/rsyslog.conf"echo"-----------------"cat /etc/rsyslog.conf 2>/dev/null | grep -v"^"| grep -v"^\\$"| sed/^$/d| column -t报表信息report_Syslog="$(getState rsyslog)"}functiongetFirewallStatus(){echo""echo""echo" 防火墙检查 "防火墙状态,策略等if[[$centosVersion< 7 ]];then/etc/init.d/iptables status >/dev/null 2>&1 status=$?if[$status-eq 0 ];thens="active"elif[$status-eq 3 ];thens="inactive"elif[$status-eq 4 ];thens="permission denied"elses="unknown"fielses="$(getState iptables)"fiecho"iptables:$s"echo""echo"/etc/sysconfig/iptables"echo"-----------------------"cat /etc/sysconfig/iptables 2>/dev/null报表信息report_Firewall="$s"}functiongetSNMPStatus(){SNMP服务状态,配置等echo""echo""echo" SNMP检查 "status="$(getState snmpd)"echo"服务状态:$status"echo""if[ -e /etc/snmp/snmpd.conf ];thenecho"/etc/snmp/snmpd.conf"echo"--------------------"cat /etc/snmp/snmpd.conf 2>/dev/null | grep -v"^"| sed/^$/dfi报表信息report_SNMP="$(getState snmpd)"}functiongetState(){if[[$centosVersion< 7 ]];thenif[ -e"/etc/init.d/$1"];thenif[ `/etc/init.d/$1status 2>/dev/null | grep -E"is running|正在运行"| wc -l` -ge 1 ];thenr="active"elser="inactive"fielser="unknown"fielseCentOS 7+r="$(systemctl is-active $1 2>&1)"fiecho"$r"}functiongetSSHStatus(){SSHD服务状态,配置,受信任主机等echo""echo""echo" SSH检查 "检查受信任主机pwdfile="$(cat /etc/passwd)"echo"服务状态:$(getState sshd)"Protocol_Version=$(cat /etc/ssh/sshd_config | grep Protocol | awk{print $2})echo"SSH协议版本:$Protocol_Version"echo""echo"信任主机"echo"--------"authorized=0foruserin$(echo"$pwdfile"| grep /bin/bash | awk -F:{print $1});doauthorize_file=$(echo"$pwdfile"| grep -w$user| awk -F:{printf $6"/.ssh/authorized_keys"}) authorized_host=$(cat$authorize_file2>/dev/null | awk{print $3}| tr\n,| seds/,$//)if[ ! -z$authorized_host];thenecho"$user授权 \"$authorized_host\" 无密码访问"filetauthorized=authorized+$(cat$authorize_file2>/dev/null | awk{print $3}|wc -l)doneecho""echo"是否允许ROOT远程登录"echo"--------------------"config=$(cat /etc/ssh/sshd_config | grep PermitRootLogin) firstChar=${config:0:1}if[$firstChar==""];thenPermitRootLogin="yes"默认是允许ROOT远程登录的elsePermitRootLogin=$(echo$config| awk{print $2})fiecho"PermitRootLogin$PermitRootLogin"echo""echo"/etc/ssh/sshd_config"echo"--------------------"cat /etc/ssh/sshd_config | grep -v"^"| sed/^$/d报表信息report_SSHAuthorized="$authorized"SSH信任主机report_SSHDProtocolVersion="$Protocol_Version"SSH协议版本report_SSHDPermitRootLogin="$PermitRootLogin"允许root远程登录}functiongetNTPStatus(){NTP服务状态,当前时间,配置等echo""echo""echo" NTP检查 "if[ -e /etc/ntp.conf ];thenecho"服务状态:$(getState ntpd)"echo""echo"/etc/ntp.conf"echo"-------------"cat /etc/ntp.conf 2>/dev/null | grep -v"^"| sed/^$/dfi报表信息report_NTP="$(getState ntpd)"}functionuploadHostDailyCheckReport(){ json="{ \"DateTime\":\"$report_DateTime\", \"Hostname\":\"$report_Hostname\", \"OSRelease\":\"$report_OSRelease\", \"Kernel\":\"$report_Kernel\", \"Language\":\"$report_Language\", \"LastReboot\":\"$report_LastReboot\", \"Uptime\":\"$report_Uptime\", \"CPUs\":\"$report_CPUs\", \"CPUType\":\"$report_CPUType\", \"Arch\":\"$report_Arch\", \"MemTotal\":\"$report_MemTotal\", \"MemFree\":\"$report_MemFree\", \"MemUsedPercent\":\"$report_MemUsedPercent\", \"DiskTotal\":\"$report_DiskTotal\", \"DiskFree\":\"$report_DiskFree\", \"DiskUsedPercent\":\"$report_DiskUsedPercent\", \"InodeTotal\":\"$report_InodeTotal\", \"InodeFree\":\"$report_InodeFree\", \"InodeUsedPercent\":\"$report_InodeUsedPercent\", \"IP\":\"$report_IP\", \"MAC\":\"$report_MAC\", \"Gateway\":\"$report_Gateway\", \"DNS\":\"$report_DNS\", \"Listen\":\"$report_Listen\", \"Selinux\":\"$report_Selinux\", \"Firewall\":\"$report_Firewall\", \"USERs\":\"$report_USERs\", \"USEREmptyPassword\":\"$report_USEREmptyPassword\", \"USERTheSameUID\":\"$report_USERTheSameUID\", \"PasswordExpiry\":\"$report_PasswordExpiry\", \"RootUser\":\"$report_RootUser\", \"Sudoers\":\"$report_Sudoers\", \"SSHAuthorized\":\"$report_SSHAuthorized\", \"SSHDProtocolVersion\":\"$report_SSHDProtocolVersion\", \"SSHDPermitRootLogin\":\"$report_SSHDPermitRootLogin\", \"DefunctProsess\":\"$report_DefunctProsess\", \"SelfInitiatedService\":\"$report_SelfInitiatedService\", \"SelfInitiatedProgram\":\"$report_SelfInitiatedProgram\", \"RuningService\":\"$report_RuningService\", \"Crontab\":\"$report_Crontab\", \"Syslog\":\"$report_Syslog\", \"SNMP\":\"$report_SNMP\", \"NTP\":\"$report_NTP\", \"JDK\":\"$report_JDK\" }"echo "$json"curl -l -H"Content-type: application/json"-X POST -d"$json""$uploadHostDailyCheckReportApi"2>/dev/null }functiongetchage_file_24h() {echo" 文件检查 "check2=$(find / -name*.sh-mtime -1) check21=$(find / -name*.asp-mtime -1) check22=$(find / -name*.php-mtime -1) check23=$(find / -name*.aspx-mtime -1) check24=$(find / -name*.jsp-mtime -1) check25=$(find / -name*.html-mtime -1) check26=$(find / -name*.htm-mtime -1) check9=$(find / -name core -execls -l {} \;) check10=$(cat /etc/crontab) check12=$(ls -alt /usr/bin | head -10) cat <查看所有被修改过的文件返回最近24小时内的${check2}${check21}${check22}${check23}${check24}${check25}${check26}${line}检查定时文件的完整性${check10}${line}查看系统命令是否被替换${check12}${line}EOF }functioncheck(){ version getSystemStatus getCpuStatus getMemStatus getDiskStatus getNetworkStatus getListenStatus getProcessStatus getServiceStatus getAutoStartStatus getLoginStatus getCronStatus getUserStatus getPasswordStatus getSudoersStatus getJDKStatus getFirewallStatus getSSHStatus getSyslogStatus getSNMPStatus getNTPStatus getInstalledStatus getchage_file_24h }执行检查并保存检查结果check >$RESULTFILEecho"检查结果:$RESULTFILE"echo-e"`date "+%Y-%m-%d %H:%M:%S"` 阿里云PHP企业平台巡检报告"| mail -a$RE

云服务器网络