写作网站名字,yw52777最新跳转接口,怎么做网站的地图页,品牌运营管理有限公司目录 1、Dos攻击防范#xff08;自动屏蔽攻击IP#xff09; 2、Linux系统发送告警脚本 3、MySQL数据库备份单循环 4、MySQL数据库备份多循环 5、Nginx访问访问日志按天切割 6、Nginx访问日志分析脚本 7、查看网卡实时流量脚本 8、服务器系统配置初始化脚本 9、监控100台服务器… 目录 1、Dos攻击防范自动屏蔽攻击IP 2、Linux系统发送告警脚本 3、MySQL数据库备份单循环 4、MySQL数据库备份多循环 5、Nginx访问访问日志按天切割 6、Nginx访问日志分析脚本 7、查看网卡实时流量脚本 8、服务器系统配置初始化脚本 9、监控100台服务器磁盘利用率脚本 1、Dos攻击防范自动屏蔽攻击IP #!/bin/bash
DATE$(date %d/%b/%Y:%H:%M)
LOG_FILE/usr/local/nginx/logs/demo2.access.log
ABNORMAL_IP$(tail -n5000 $LOG_FILE |grep $DATE |awk {a[$1]}END{for(i in a)if(a[i]10)print i})
for IP in $ABNORMAL_IP; doif [ $(iptables -vnL |grep -c $IP) -eq 0 ]; theniptables -I INPUT -s $IP -j DROPecho $(date %F_%T) $IP /tmp/drop_ip.logfi
done 2、Linux系统发送告警脚本 # yum install mailx
# vi /etc/mail.rc
set frombaojingtongzhi163.com smtpsmtp.163.com
set smtp-auth-userbaojingtongzhi163.com smtp-auth-password123456
set smtp-authlogin 3、MySQL数据库备份单循环 #!/bin/bash
DATE$(date %F_%H-%M-%S)
HOSTlocalhost
USERbackup
PASS123.com
BACKUP_DIR/data/db_backup
DB_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e show databases; 2/dev/null |egrep -v Database|information_schema|mysql|performance_schema|sys)for DB in $DB_LIST; doBACKUP_NAME$BACKUP_DIR/${DB}_${DATE}.sqlif ! mysqldump -h$HOST -u$USER -p$PASS -B $DB $BACKUP_NAME 2/dev/null; thenecho $BACKUP_NAME 备份失败!fi
done 4、MySQL数据库备份多循环 #!/bin/bash
DATE$(date %F_%H-%M-%S)
HOSTlocalhost
USERbackup
PASS123.com
BACKUP_DIR/data/db_backup
DB_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e show databases; 2/dev/null |egrep -v Database|information_schema|mysql|performance_schema|sys)for DB in $DB_LIST; doBACKUP_DB_DIR$BACKUP_DIR/${DB}_${DATE}[ ! -d $BACKUP_DB_DIR ] mkdir -p $BACKUP_DB_DIR /dev/nullTABLE_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e use $DB;show tables; 2/dev/null)for TABLE in $TABLE_LIST; doBACKUP_NAME$BACKUP_DB_DIR/${TABLE}.sqlif ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE $BACKUP_NAME 2/dev/null; thenecho $BACKUP_NAME 备份失败!fidone
done 5、Nginx访问访问日志按天切割 #!/bin/bash
LOG_DIR/usr/local/nginx/logs
YESTERDAY_TIME$(date -d yesterday %F)
LOG_MONTH_DIR$LOG_DIR/$(date %Y-%m)
LOG_FILE_LISTdefault.access.logfor LOG_FILE in $LOG_FILE_LIST; do[ ! -d $LOG_MONTH_DIR ] mkdir -p $LOG_MONTH_DIRmv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}
donekill -USR1 $(cat /var/run/nginx.pid) 6、Nginx访问日志分析脚本 #!/bin/bash
# 日志格式: $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for
LOG_FILE$1
echo 统计访问最多的10个IP
awk {a[$1]}END{print UV:,length(a);for(v in a)print v,a[v]} $LOG_FILE |sort -k2 -nr |head -10
echo ----------------------echo 统计时间段访问最多的IP
awk $4[01/Dec/2018:13:20:25 $4[27/Nov/2018:16:20:49{a[$1]}END{for(v in a)print v,a[v]} $LOG_FILE |sort -k2 -nr|head -10
echo ----------------------echo 统计访问最多的10个页面
awk {a[$7]}END{print PV:,length(a);for(v in a){if(a[v]10)print v,a[v]}} $LOG_FILE |sort -k2 -nr
echo ----------------------echo 统计访问页面状态码数量
awk {a[$7 $9]}END{for(v in a){if(a[v]5)print v,a[v]}} 7、查看网卡实时流量脚本 #!/bin/bash
NIC$1
echo -e In ------ Out
while true; doOLD_IN$(awk $0~$NIC{print $2} /proc/net/dev)OLD_OUT$(awk $0~$NIC{print $10} /proc/net/dev)sleep 1NEW_IN$(awk $0~$NIC{print $2} /proc/net/dev)NEW_OUT$(awk $0~$NIC{print $10} /proc/net/dev)IN$(printf %.1f%s $((($NEW_IN-$OLD_IN)/1024)) KB/s)OUT$(printf %.1f%s $((($NEW_OUT-$OLD_OUT)/1024)) KB/s)echo $IN $OUTsleep 1
done 8、服务器系统配置初始化脚本 #/bin/bash
# 设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate /dev/null ; then(echo * 1 * * * ntpdate time.windows.com /dev/null 21;crontab -l) |crontab
fi# 禁用selinux
sed -i /SELINUX/{s/permissive/disabled/} /etc/selinux/config# 关闭防火墙
if egrep 7.[0-9] /etc/redhat-release /dev/null; thensystemctl stop firewalldsystemctl disable firewalld
elif egrep 6.[0-9] /etc/redhat-release /dev/null; thenservice iptables stopchkconfig iptables off
fi# 历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho export HISTTIMEFORMAT%F %T whoami /etc/bashrc
fi# SSH超时时间
if ! grep TMOUT600 /etc/profile /dev/null; thenecho export TMOUT600 /etc/profile
fi# 禁止root远程登录
sed -i s/#PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config# 禁止定时任务向发送邮件
sed -i s/^MAILTOroot/MAILTO/ /etc/crontab# 设置最大打开文件数
if ! grep * soft nofile 65535 /etc/security/limits.conf /dev/null; thencat /etc/security/limits.conf EOF* soft nofile 65535* hard nofile 65535
EOF
fi# 系统内核优化
cat /etc/sysctl.conf EOF
net.ipv4.tcp_syncookies 1
net.ipv4.tcp_max_tw_buckets 20480
net.ipv4.tcp_max_syn_backlog 20480
net.core.netdev_max_backlog 262144
net.ipv4.tcp_fin_timeout 20
EOF# 减少SWAP使用
echo 0 /proc/sys/vm/swappiness# 安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat net-tools iostat if 9、监控100台服务器磁盘利用率脚本 #!/bin/bash
HOST_INFOhost.info
for IP in $(awk /^[^#]/{print $1} $HOST_INFO); doUSER$(awk -v ip$IP ip$1{print $2} $HOST_INFO)PORT$(awk -v ip$IP ip$1{print $3} $HOST_INFO)TMP_FILE/tmp/disk.tmpssh -p $PORT $USER$IP df -h $TMP_FILEUSE_RATE_LIST$(awk BEGIN{OFS}/^\/dev/{print $NF,int($5)} $TMP_FILE)for USE_RATE in $USE_RATE_LIST; doPART_NAME${USE_RATE%*}USE_RATE${USE_RATE#*}if [ $USE_RATE -ge 80 ]; thenecho Warning: $PART_NAME Partition usage $USE_RATE%!fidone
done