脚本

1、LVS客户端自动配置

#/bin/bash

VIP=(202.106.195.111 202.106.195.222)

[ -e /etc/sysctl.conf ]&&rm -f /etc/sysctl.conf

[ -e /etc/sysconfig/network-scripts/ifcfg-lo:0 ]&&rm -f /etc/sysconfig/network-scripts/ifcfg-lo:0

[ -e /etc/sysconfig/network-scripts/ifcfg-lo:1 ]&&rm -f /etc/sysconfig/network-scripts/ifcfg-lo:1

echo "net.ipv4.conf.all.arp_ignore = 1">/etc/sysctl.conf

echo "net.ipv4.conf.all.arp_announce = 2">>/etc/sysctl.conf

echo "net.ipv4.conf.default.arp_ignore = 1">>/etc/sysctl.conf

echo "net.ipv4.conf.default.arp_announce = 2">>/etc/sysctl.conf

echo "net.ipv4.conf.lo.arp_ignore = 1">>/etc/sysctl.conf

echo "net.ipv4.conf.lo.arp_announce = 2">>/etc/sysctl.conf

sysctl -p &>/dev/null

cd /etc/sysconfig/network-scripts

for ((i=0;i

do

cp ifcfg-lo ifcfg-lo:$i

echo "DEVICE=lo:$i">ifcfg-lo:$i

echo "IPADDR=${VIP[$i]}">>ifcfg-lo:$i

echo "NETMASK=255.255.255.255">>ifcfg-lo:$i

echo "ONBOOT=yes">>ifcfg-lo:$i

ifup ifcfg-lo:$i

/usr/sbin/route add -host ${VIP[$i]} dev lo:$i &>/dev/null

done

2、企业日常巡检

#!/bin/bash

function system(){

echo "#########################系统信息#########################"

OS_TYPE=uname

OS_VER=cat /etc/redhat-release

OS_KER=uname -a|awk '{print $3}'

OSTIME=`date +%F%T<br/>OS_RUN_TIME=uptime |awk '{print $3}'|awk -F, '{print $1}'<br/>OS_LAST_REBOOT_TIME=who -b|awk '{print $2,$3}'<br/>OS_HOSTNAME=hostname`

echo " 系统类型:$OS_TYPE"

echo " 系统版本:$OS_VER"

echo " 系统内核:$OS_KER"

echo " 当前时间:$OS_TIME"

echo " 运行时间:$OS_RUN_TIME"

echo "最后重启时间:$OS_LAST_REBOOT_TIME"

echo " 本机名称:$OS_HOSTNAME"

}

function network(){

echo "#########################网络信息#########################"

INTERNET=(ifconfig|grep ens|awk -F: '{print $1}')

for((i=0;i

do 

OS_IP=ifconfig ${INTERNET[$i]}|head -2|grep inet|awk '{print $2}'

echo " 本机IP:${INTERNET[$i]}:$OS_IP"

done

curl -I http://www.baidu.com &>/dev/null

if [ $? -eq 0 ]

then echo " 访问外网:成功"

else echo " 访问外网:失败"

fi

}

function hardware(){

echo "#########################硬件信息#########################"

CPUID=grep "physical id" /proc/cpuinfo |sort|uniq|wc -l

CPUCORES=grep "cores" /proc/cpuinfo|sort|uniq|awk -F: '{print $2}'

CPUMODE=grep "model name" /proc/cpuinfo|sort|uniq|awk -F: '{print $2}'

echo " CPU数量: $CPUID"

echo " CPU核心:$CPUCORES"

echo " CPU型号:$CPUMODE"

MEMTOTAL=free -m|grep Mem|awk '{print $2}'

MEMFREE=free -m|grep Mem|awk '{print $7}'

echo " 内存总容量: ${MEMTOTAL}MB"

echo "剩余内存容量: ${MEMFREE}MB"

disksize=0

swapsize=free|grep Swap|awk {'print $2'}

partitionsize=(df -T|sed 1d|egrep -v "tmpfs|sr0"|awk {'print $3'})

for ((i=0;i

do

disksize=expr $disksize + ${partitionsize[$i]}

done

((disktotal=($disksize+$swapsize)/1024/1024))

echo " 磁盘总容量: ${disktotal}GB"

diskfree=0

swapfree=free|grep Swap|awk '{print $4}'

partitionfree=(df -T|sed 1d|egrep -v "tmpfs|sr0"|awk '{print $5}')

for ((i=0;i

do

diskfree=expr $diskfree + ${partitionfree[$i]}

done

((freetotal=($diskfree+$swapfree)/1024/1024))

echo "剩余磁盘容量:${freetotal}GB"

}

function secure(){

echo "#########################安全信息#########################"

countuser=(last|grep "still logged in"|awk '{print $1}'|sort|uniq)

for ((i=0;i

do echo "当前登录用户:${countuser[$i]}"

done

md5sum -c --quiet /opt/passwd.db &>/dev/null

if [ $? -eq 0 ]

then echo " 用户异常:否"

else echo " 用户异常:是"

fi

}

function chksys(){

system

network

hardware

secure

}

3、检测网站地址是否存活

#!/bin/bash

. /etc/init.d/functions

url_list=(www.tec.com www.stu.com)

function chkurl(){

i=0

while [ $i -lt 2 ]

do

curl http://${url_list[$i]} &>/dev/null

if [ $? -eq 0 ]

then

action "${url_list[$i]}" /bin/true

else

action "${url_list[$i]}" /bin/false

fi

let i++

done

}

function main(){

while true

do chkurl

sleep 3

done

}

main

4、LVS节点健康检查

#!/bin/bash

VIP=202.106.195.1

PORT=80

RIP=(192.168.100.10 192.168.100.20)

while true

do

for ((i=0;i

do

code=curl -I -m 10 -o /dev/null -s -w %{http_code} http://${RIP[$i]}

if [ $code -ne 200 -a $(ipvsadm -Ln|grep ${RIP[$i]}|wc -l) -eq 1 ]

then ipvsadm -d -t $VIP:$PORT -r ${RIP[$i]}:$PORT

elif [ $code -eq 200 -a $(ipvsadm -Ln|grep ${RIP[$i]}|wc -l) -lt 1 ]

then ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]}:$PORT

fi

done

sleep 5

done

5、Keepalived监控服务

#!/bin/bash

while true 

do

if [ $(pidof httpd|wc -l) -eq 1 -a $(pidof keepalived|wc -l) -eq 0 ]

then systemctl start keepalived

fi

pidof httpd &>/dev/null

if [ $? -ne 0 ]

then systemctl start httpd &>/dev/null

fi

sleep 3

pidof httpd &>/dev/null

if [ $? -ne 0 ]

then systemctl stop keepalived

fi

sleep 3

done

6、mysql建库建表插入数据

#!/bin/bash

user="root"

password="123456"

mycmd="mysql -u$user -p$password"

for dbname in tec stu

do

$mycmd -e "create database $dbname;"

$mycmd -e "use $dbname;create table test(id int,name varchar(18));insert into test values(1,'rainman');"

done

7、mysql分库分表备份

#!/bin/bash

user="root"

password="123456"

mycmd="mysql -u$user -p$password -h 192.168.100.1"

mydump="mysqldump -u$user -p$password -h 192.168.100.1 --lock-tables=0"

for dbname in $mycmd -e "show databases;"|egrep -v "Database|schema"

do

[ -d /opt/$dbname ]||mkdir -p /opt/$dbname

for tabname in $mycmd -e "show tables from $dbname"|sed 1d

do $mydump $dbname $tabname > /opt/$dbname/${tabname}_$(date +%F).sql

done

done

8、检测MySQL主从复制是否异常

#!/bin/bash

user="root"

password="123456"

mycmd="mysql -u$user -p$password -h 192.168.100.20"

function chkdb() {

list=($($mycmd -e "show slave status \G"|egrep "Running|Behind"|awk -F: '{print $2}'))

if [ ${list[0]} = "Yes" -a ${list[1]} = "Yes" -a ${list[2]} -lt 120 ]

then echo "Mysql slave is ok"

else echo "Mysql slave replation is filed"

fi

}

function main() {

while true

do chkdb

sleep 3

done

}

main

9、mysql日志切割

#!/bin/bash

logfile=/var/log/httpd/access_log

pid=/run/httpd/httpd.pid

mv $logfile /opt/access_$(date -d "yesterday" +"%Y-%m-%d").log

kill -USR1 $(cat $pid)

size=du -sh /opt|awk '{print $1}'|awk -F "M" '{print $1}'

if [ $size -gt 1000 ]

then find /opt -type f -name access* -mtime +30 -exec rm -f {} \;

fi

10、防DOS***-网络连接法

#!/bin/bash

netstat -antup|grep SYN_RECV|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c>/opt/tmp

exec

while read line

do

count=echo $line|awk '{print $1}'

ip=echo $line |awk '{print $2}'

if [ $count -gt 128 ]

then iptables -I INPUT -s $ip -j DROP

fi

done

11、***检测与邮件报警

#!/bin/bash

webdir=/var/www/html

cd $webdir

md5sum -c --quiet /opt/sumfile.db &>/opt/sum_err.log

if [ $? -ne 0 ]

then

echo "the file_sum is changed"

mail -s "sum_error" wcg@bw.com

else

echo "check file_sum is ok"

fi

find /var/www/html/ -type f >/opt/countfile.dbsec

diff /opt/countfile.db

 &>/opt/counterr.log

if [ $(diff /opt/countfile.db

|wc -l) -gt 0 ]

then

echo "the file_count is changed"

mail -s "count_err" wcg@bw.com

else

echo "check file_count is ok"

fi

12、企业微信报警

function sendmsg() {

CorpID="ww3c6298264d839e2f"

Secret="YvyMQpMRIoXtdQRWo0RNkMBTZnHWKvBwC3ILkyuCsKQ"

agentid=1000002

GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"

Gtoken=$(/usr/bin/curl -s -G $GURL|awk -F\" '{print $10}')

#echo $Gtoken

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

Ip=$(ip a |grep ens33 |grep inet|awk -F "/" '{ print $1 }' |awk -F " " '{ print $2 }')

/usr/bin/curl --data-ascii '{

"touser": "@all",

"toparty": "2",

"msgtype": "text",

"agentid": "1000002",

"text": {"content": "'"警告:[$msg]\n主机:[uname -n]\n日期:[$(date +%F-%T)]\n地址:[$Ip]"'"},

"safe":"0"

}' $PURL >/dev/null 2>&1

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容