代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Shell
】
shell脚本收集服务器基本信息并入库
作者:
/ 发布于
2019/6/17
/
680
# cat global.sh -------------------------------------------------------------------------------------------------------- #!/bin/bash #create by hexm @2016.6 DATE=`date +%Y%m%d` TIME=`date '+%F %H:%M:%S'` MYSQL_USER="xxx" MYSQL_PASSWD="xxx" MYSQL_ADDRESS="10.88.2.111" EXEC_LOG="/app/healthcheck/log/exec_$DATE.log" #DATA_LOG="/app/healthcheck/log/data_$DATE.log" SOURCE_FILE="/app/healthcheck" DIST_FILE="/app/healthcheck" SSH_KEY="/root/.ssh/id_rsa_gongy" #IP=`ifconfig eth1|awk -F"[ :]+" 'NR==2{print $4}'` DATA_LOG="/app/healthcheck/log/${IP}_data_$DATE.log" INSERT_SQL_LOG="/app/healthcheck/log/insertsql_$IP_$DATE.log" ------------------------------------------------------------------------------------------- # cat check_all.sh #!/bin/bash #create by hexm @2016.6 #date=`date +%Y%m%d` #DIST_FILE=/app/healthcheck #EXEC_LOG=/app/healthcheck/log/exec_$date.log set -e IP=`ifconfig eth1|awk -F"[ :]+" 'NR==2{print $4}'` #加载变量 . /app/healthcheck/scripts/global.sh #因rsync用户名有nobody和csocket两种,这里判断下防止被修改 CHECK_ALL_OWN=`ls -ld /app/healthcheck/ |awk '{print $3}'` rsync_user=`cat /etc/rsyncd.conf|grep uid|awk -F"[ =]+" '{print $NF}'` if [[ ${CHECK_ALL_OWN} != ${rsync_user} ]];then chown ${rsync_user}.${rsync_user} /app/healthcheck -R fi #获取CPU使用率、CPU负载 TOP_INFO(){ #TOP_DETAIL=$(/usr/bin/top -bn1 ) #CPU_USE=$(echo -e "$TOP_DETAIL" |grep "Cpu(s):" |awk '{print $2}' | tail -n1 |cut -d"%" -f 1) TOP_DETAIL=$(/usr/bin/top -b -d 10 -n 2 ) CPU_USE=$(echo -e "$TOP_DETAIL" |grep "Cpu(s):" |awk '{print $2}' | tail -n1 |cut -d"%" -f 1) CPU_LOAD=$(uptime | awk -F"," '{print $(NF-2)}'| awk '{print $3}') CPU_LOAD=$(echo -e "${CPU_LOAD}" | sed 's/[, ]//g') } #获取可用内存率 MEM(){ Free_mem=`free -m|awk -F"[ :]+" 'NR==2{print $4+$6+$7}'` Totol_mem=`free -m|grep Mem |awk '{print $2}'` ava_mem=`echo "scale=2;$Free_mem/$Totol_mem*100" | bc` MEM_FREE=${ava_mem/.*} } #获取读IO和写IO IO(){ R_IO=`iostat -x|awk '/sda/{print $4}'|awk '{sum+=$1}END{print sum/NR}'` W_IO=`iostat -x|awk '/sda/{print $5}'|awk '{sum+=$1}END{print sum/NR}'` } #获取磁盘可用率 #划分为"/"、"DFS"、"APP"、"FDFS"四种 DISK(){ DISK_USE=`df -h|awk "/\/$/"'{print $(NF-1)}'|cut -d"%" -f 1` if [[ "${DISK_USE}" == "" ]];then echo "$IP:无/目录" &>/dev/null else DISK_USE=${DISK_USE/.*} DISK_FREE=$((100-$DISK_USE)) fi DISK_DFS_USE=`df -h|awk "/\/dfs/"'{print$(NF-1)}'|cut -d"%" -f 1` if [[ "${DISK_DFS_USE}" == "" ]];then echo "$IP:无/dfs目录" &> /dev/null else DISK_DFS_USE=${DISK_DFS_USE/.*} DISK_DFS_FREE=$((100-${DISK_DFS_USE})) fi DISK_APP_USE=`df -h|awk "/\/app/"'{print$(NF-1)}'|cut -d"%" -f 1` if [[ "${DISK_APP_USE}" == "" ]];then echo "$IP:无/app目录" &> /dev/null else DISK_APP_USE=${DISK_APP_USE/.*} DISK_APP_FREE=$((100-$DISK_APP_USE)) fi DISK_FDFS_USE=`df -h|awk "/\/fdfs/"'{print$(NF-1)}'|cut -d"%" -f 1` if [[ "${DISK_FDFS_USE}" == "" ]];then echo "$IP:无/fdfs目录" &> /dev/null else DISK_FDFS_USE=`echo $DISK_FDFS_USE|tr " " "\n"|awk '{sum+=$1}END{print sum/NR}'` DISK_FDFS_USE=${DISK_FDFS_USE/.*} DISK_FDFS_FREE=$((100-${DISK_FDFS_USE})) fi } #获取网卡单秒流量 NETWORK_FLOW(){ FLAG=`ifstat 1 1|head -1|awk '{print $1}'` if [ $FLAG == eth1 ];then WAN_INPUT="None" WAN_OUTPUT="None" LAN_INPUT=`ifstat 1 1 |awk 'NR==3{print $1}'` LAN_OUTPUT=`ifstat 1 1 |awk 'NR==3{print $2}'` else WAN_INPUT=`ifstat 1 1 |awk 'NR==3{print $1}'` WAN_OUTPUT=`ifstat 1 1 |awk 'NR==3{print $2}'` LAN_INPUT=`ifstat 1 1 |awk 'NR==3{print $3}'` LAN_OUTPUT=`ifstat 1 1 |awk 'NR==3{print $4}'` fi } MEM TOP_INFO DISK NETWORK_FLOW IO #数据入库 TIME=`date '+%F %H:%M:%S'` mysql -u${MYSQL_USER} -p${MYSQL_PASSWD} -h${MYSQL_ADDRESS} <<EOF use db_devops; insert into tbl_data(IP,CPU_USE,MEM_FREE,CPU_LOAD,WAN_INPUT,WAN_OUTPUT,LAN_INPUT,LAN_OUTPUT,DISK_FREE,DISK_DFS_FREE,DISK_APP_FREE,DISK_FDFS_FREE,R_IO,W_IO,SYS_TIME,SQL_TIME) values('${IP}','$CPU_USE','$MEM_FREE','$CPU_LOAD','${WAN_INPUT:-None}','${WAN_OUTPUT:-None}','${LAN_INPUT:-None}','${LAN_OUTPUT:-None}','${DISK_FREE:-None}','${DISK_DFS_FREE:-None}','${DISK_APP_FREE:-None}','${DISK_FDFS_FREE:-None}','${R_IO:-None}','${W_IO:-None}','$TIME',now()); EOF
试试其它关键字
同语言下
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
可能有用的
.
判断用户输入的是否为IP地址
.
根据web访问日志,封禁请求量异常的IP,如IP在半小时
.
iptables自动屏蔽访问网站频繁的IP
.
批量修改服务器用户密码
.
监控httpd的进程数,根据监控情况做相应处理
.
创建10个用户,并分别设置密码,密码要求10位且包含大
.
Expect实现SSH免交互执行命令
.
输入数字运行相应命令
.
用shell打印示例语句中字母数小于6的单词
.
扫描主机端口状态
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3