
-
Dos 攻擊防范(自動屏蔽攻擊 IP)
#!/bin/bashDATE=$(date?+%d/%b/%Y:%H:%M)LOG_FILE=/usr/local/nginx/logs/demo2.access.logABNORMAL_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;?do????if?[?$(iptables?-vnL?|grep?-c?"$IP")?-eq?0?];?then????????iptables?-I?INPUT?-s?$IP?-j?DROP????????echo?"$(date?+'%F_%T')?$IP"?>>?/tmp/drop_ip.log????fidone
-
Linux 系統發送告警腳本
#?yum?install?mailx#?vi?/etc/mail.rcset?from=baojingtongzhi@163.com?smtp=smtp.163.comset?smtp-auth-user=baojingtongzhi@163.com?smtp-auth-password=123456set?smtp-auth=login
-
MySQL 數據庫備份單循環
#!/bin/bashDATE=$(date?+%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_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;?do????BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql????if?!?mysqldump?-h$HOST?-u$USER?-p$PASS?-B?$DB?>?$BACKUP_NAME?2>/dev/null;?then????????echo?"$BACKUP_NAME?備份失敗!"????fidone
-
MySQL 數據庫備份多循環
#!/bin/bashDATE=$(date?+%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_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;?do????BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE}????[?!?-d?$BACKUP_DB_DIR?]?&&?mkdir?-p?$BACKUP_DB_DIR?&>/dev/null????TABLE_LIST=$(mysql?-h$HOST?-u$USER?-p$PASS?-s?-e?"use?$DB;show?tables;"?2>/dev/null)????for?TABLE?in?$TABLE_LIST;?do????????BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql????????if?!?mysqldump?-h$HOST?-u$USER?-p$PASS?$DB?$TABLE?>?$BACKUP_NAME?2>/dev/null;?then????????????echo?"$BACKUP_NAME?備份失敗!"????????fi????donedone
-
Nginx 訪問訪問日志按天切割?關注Linux中文社區
#!/bin/bashLOG_DIR=/usr/local/nginx/logsYESTERDAY_TIME=$(date?-d?"yesterday"?+%F)LOG_MONTH_DIR=$LOG_DIR/$(date?+"%Y-%m")LOG_FILE_LIST="default.access.log"for?LOG_FILE?in?$LOG_FILE_LIST;?do????[?!?-d?$LOG_MONTH_DIR?]?&&?mkdir?-p?$LOG_MONTH_DIR????mv?$LOG_DIR/$LOG_FILE?$LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}donekill?-USR1?$(cat?/var/run/nginx.pid)
-
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=$1echo?"統計訪問最多的10個IP"awk?'{a[$1]++}END{print?"UV:",length(a);for(v?in?a)print?v,a[v]}'?$LOG_FILE?|sort?-k2?-nr?|head?-10echo?"----------------------"echo?"統計時間段訪問最多的IP"awk?'$4>="[01/Dec/2018:13:20:25"?&&?$410)print?v,a[v]}}'?$LOG_FILE?|sort?-k2?-nrecho?"----------------------"echo?"統計訪問頁面狀態碼數量"awk?'{a[$7"?"$9]++}END{for(v?in?a){if(a[v]>5)print?v,a[v]}}'
-
查看網卡實時流量腳本
#!/bin/bashNIC=$1echo?-e?"?In?------?Out"while?true;?do????OLD_IN=$(awk?'$0~"'$NIC'"{print?$2}'?/proc/net/dev)????OLD_OUT=$(awk?'$0~"'$NIC'"{print?$10}'?/proc/net/dev)????sleep?1????NEW_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?$OUT"????sleep?1done
-
服務器系統配置初始化腳本?另外,搜索公眾號Linux就該這樣學后臺回復“Linux”,獲取一份驚喜禮包。
#/bin/bash#?設置時區并同步時間ln?-s?/usr/share/zoneinfo/Asia/Shanghai?/etc/localtimeif?!?crontab?-l?|grep?ntpdate?&>/dev/null?;?then????(echo?"*?1?*?*?*?ntpdate?time.windows.com?>/dev/null?2>&1";crontab?-l)?|crontabfi#?禁用selinuxsed?-i?'/SELINUX/{s/permissive/disabled/}'?/etc/selinux/config#?關閉防火墻if?egrep?"7.[0-9]"?/etc/redhat-release?&>/dev/null;?then????systemctl?stop?firewalld????systemctl?disable?firewalldelif?egrep?"6.[0-9]"?/etc/redhat-release?&>/dev/null;?then????service?iptables?stop????chkconfig?iptables?offfi#?歷史命令顯示操作時間if?!?grep?HISTTIMEFORMAT?/etc/bashrc;?then????echo?'export?HISTTIMEFORMAT="%F?%T?`whoami`?"'?>>?/etc/bashrcfi#?SSH超時時間if?!?grep?"TMOUT=600"?/etc/profile?&>/dev/null;?then????echo?"export?TMOUT=600"?>>?/etc/profilefi#?禁止root遠程登錄sed?-i?'s/#PermitRootLogin?yes/PermitRootLogin?no/'?/etc/ssh/sshd_config#?禁止定時任務向發送郵件sed?-i?'s/^MAILTO=root/MAILTO=""/'?/etc/crontab#?設置最大打開文件數if?!?grep?"*?soft?nofile?65535"?/etc/security/limits.conf?&>/dev/null;?then????cat?>>?/etc/security/limits.conf?>?/etc/sysctl.conf??/proc/sys/vm/swappiness#?安裝系統性能分析工具及其他yum?install?gcc?make?autoconf?vim?sysstat?net-tools?iostat?if
-
監控 100 臺服務器磁盤利用率腳本
#!/bin/bashHOST_INFO=host.infofor?IP?in?$(awk?'/^[^#]/{print?$1}'?$HOST_INFO);?do????USER=$(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.tmp????ssh?-p?$PORT?$USER@$IP?'df?-h'?>?$TMP_FILE????USE_RATE_LIST=$(awk?'BEGIN{OFS="="}/^/dev/{print?$NF,int($5)}'?$TMP_FILE)????for?USE_RATE?in?$USE_RATE_LIST;?do????????PART_NAME=${USE_RATE%=*}????????USE_RATE=${USE_RATE#*=}????????if?[?$USE_RATE?-ge?80?];?then????????????echo?"Warning:?$PART_NAME?Partition?usage?$USE_RATE%!"????????fi????donedone
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END