1. 9 個(gè)實(shí)用 shell 腳本,建議收藏!

        共 4788字,需瀏覽 10分鐘

         ·

        2022-02-25 12:36

        點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)

        重磅干貨,第一時(shí)間送達(dá)

        轉(zhuǎn)載:我的小碗湯

        1.Dos攻擊防范(自動(dòng)屏蔽攻擊 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;?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
        ????fi
        done

        2.Linux 系統(tǒng)發(fā)送告警腳本
        #?yum?install?mailx
        #?vi?/etc/mail.rc
        [email protected]?smtp=smtp.163.com
        [email protected]?smtp-auth-password=123456
        set?smtp-auth=login

        3.MySQL 數(shù)據(jù)庫備份單循環(huán)
        #!/bin/bash
        DATE=$(date?+%F_%H-%M-%S)
        HOST=localhost
        USER=backup
        PASS=123.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;?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?備份失敗!"
        ????fi
        done

        4.MySQL 數(shù)據(jù)庫備份多循環(huán)
        #!/bin/bash
        DATE=$(date?+%F_%H-%M-%S)
        HOST=localhost
        USER=backup
        PASS=123.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;?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
        ????done
        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_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}
        done

        kill?-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?"統(tǒng)計(jì)訪問最多的10個(gè)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?"統(tǒng)計(jì)時(shí)間段訪問最多的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?"統(tǒng)計(jì)訪問最多的10個(gè)頁面"
        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?"統(tǒng)計(jì)訪問頁面狀態(tài)碼數(shù)量"
        awk?'{a[$7"?"$9]++}END{for(v?in?a){if(a[v]>5)print?v,a[v]}}'

        7.查看網(wǎng)卡實(shí)時(shí)流量腳本
        #!/bin/bash
        NIC=$1
        echo?-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?1
        done

        8.服務(wù)器系統(tǒng)配置初始化腳本
        #/bin/bash
        #?設(shè)置時(shí)區(qū)并同步時(shí)間
        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?2>&1";crontab?-l)?|crontab
        fi

        #
        ?禁用selinux
        sed?-i?'/SELINUX/{s/permissive/disabled/}'?/etc/selinux/config

        #
        ?關(guān)閉防火墻
        if?egrep?"7.[0-9]"?/etc/redhat-release?&>/dev/null;?then
        ????systemctl?stop?firewalld
        ????systemctl?disable?firewalld
        elif?egrep?"6.[0-9]"?/etc/redhat-release?&>/dev/null;?then
        ????service?iptables?stop
        ????chkconfig?iptables?off
        fi

        #
        ?歷史命令顯示操作時(shí)間
        if?!?grep?HISTTIMEFORMAT?/etc/bashrc;?then
        ????echo?'export?HISTTIMEFORMAT="%F?%T?`whoami`?"'?>>?/etc/bashrc
        fi

        #
        ?SSH超時(shí)時(shí)間
        if?!?grep?"TMOUT=600"?/etc/profile?&>/dev/null;?then
        ????echo?"export?TMOUT=600"?>>?/etc/profile
        fi

        #
        ?禁止root遠(yuǎn)程登錄
        sed?-i?'s/#PermitRootLogin?yes/PermitRootLogin?no/'?/etc/ssh/sshd_config

        #
        ?禁止定時(shí)任務(wù)向發(fā)送郵件
        sed?-i?'s/^MAILTO=root/MAILTO=""/'?/etc/crontab

        #
        ?設(shè)置最大打開文件數(shù)
        if?!?grep?"*?soft?nofile?65535"?/etc/security/limits.conf?&>/dev/null;?then
        ????cat?>>?/etc/security/limits.conf?<????*?soft?nofile?65535
        ????*?hard?nofile?65535
        EOF
        fi

        #
        ?系統(tǒng)內(nèi)核優(yōu)化
        cat?>>?/etc/sysctl.conf?<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

        #
        ?安裝系統(tǒng)性能分析工具及其他
        yum?install?gcc?make?autoconf?vim?sysstat?net-tools?iostat?if

        9.監(jiān)控 100 臺(tái)服務(wù)器磁盤利用率腳本
        #!/bin/bash
        HOST_INFO=host.info
        for?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
        ????done
        done


        13個(gè)你一定要知道的PyTorch特性

        解讀:為什么要做特征歸一化/標(biāo)準(zhǔn)化?

        一文搞懂 PyTorch 內(nèi)部機(jī)制

        張一鳴:每個(gè)逆襲的年輕人,都具備的底層能力


        關(guān)


        學(xué)西學(xué)學(xué)運(yùn)護(hù)號(hào),質(zhì),結(jié)識(shí),關(guān)[],學(xué)習(xí)進(jìn)!


        瀏覽 55
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 天天摸天天日天天操天天摸天天爱 | 成人夜视频 | 亚洲国产黄色电影 | 水蜜桃一区二区三区 | 久久久久久九九九九九 |