<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          優(yōu)秀運維腳本鑒賞

          共 9443字,需瀏覽 19分鐘

           ·

          2023-08-11 23:49


                     

          鏈接:https://blog.csdn.net/lyshark_lyshark/article/details/125853245

          一、根據(jù)PID過濾進程所有信息

          #! /bin/bash
          # Function: 根據(jù)用戶輸入的PID,過濾出該PID所有的信息
          read -p "請輸入要查詢的PID: " P
          n=`ps -aux| awk '$2~/^'$P'$/{print $11}'|wc -l`
          if [ $n -eq 0 ];then
           echo "該PID不存在!!"
           exit
          fi
          echo "--------------------------------"
          echo "進程PID: $P"
          echo "進程命令:`ps -aux| awk '$2~/^'$P'$/{print $11}'`"
          echo "進程所屬用戶: `ps -aux| awk '$2~/^'$P'$/{print $1}'`"
          echo "CPU占用率:`ps -aux| awk '$2~/^'$P'$/{print $3}'`%"
          echo "內(nèi)存占用率:`ps -aux| awk '$2~/^'$P'$/{print $4}'`%"
          echo "進程開始運行的時刻:`ps -aux| awk '$2~/^'$P'$/{print $9}'`"
          echo "進程運行的時間:`ps -aux| awk '$2~/^'$P'$/{print $10}'`"
          echo "進程狀態(tài):`ps -aux| awk '$2~/^'$P'$/{print $8}'`"
          echo "進程虛擬內(nèi)存:`ps -aux| awk '$2~/^'$P'$/{print $5}'`"
          echo "進程共享內(nèi)存:`ps -aux| awk '$2~/^'$P'$/{print $6}'`"
          echo "--------------------------------"

          二、根據(jù)進程名過濾進程信息
          會顯示出該進程名包含的所有線程

          #! /bin/bash
          # Function: 根據(jù)輸入的程序的名字過濾出所對應的PID,并顯示出詳細信息,如果有幾個PID,則全部顯示
          read -p "請輸入要查詢的進程名:" NAME
          N=`ps -aux | grep $NAME | grep -v grep | wc -l` ##統(tǒng)計進程總數(shù)
          if [ $N -le 0 ];then
            echo "該進程名沒有運行!"
          fi
          i=1
          while [ $N -gt 0 ]
          do
            echo "進程PID: `ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $2}'`"
            echo "進程命令:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'`"
            echo "進程所屬用戶: `ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $1}'`"
            echo "CPU占用率:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $3}'`%"
            echo "內(nèi)存占用率:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $4}'`%"
            echo "進程開始運行的時刻:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $9}'`"
            echo "進程運行的時間:` ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'`"
            echo "進程狀態(tài):`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $8}'`"
            echo "進程虛擬內(nèi)存:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $5}'`"
            echo "進程共享內(nèi)存:`ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $6}'`"
            echo "***************************************************************"
            let N-- i++
          done

          三、根據(jù)用戶名查詢該用戶的相關(guān)信息

          #! /bin/bash
          # Function:根據(jù)用戶名查詢該用戶的所有信息
          read -p "請輸入要查詢的用戶名:" A
          echo "------------------------------"
          n=`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}' | wc -l`
          if [ $n -eq 0 ];then
          echo "該用戶不存在"
          echo "------------------------------"
          else
            echo "該用戶的用戶名:$A"
            echo "該用戶的UID:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $3}'`"
            echo "該用戶的組為:`id $A | awk {'print $3'}`"
            echo "該用戶的GID為:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $4}'`"
            echo "該用戶的家目錄為:`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $6}'`"
            Login=`cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $7}'`
            if [ $Login == "/bin/bash" ];then
            echo "該用戶有登錄系統(tǒng)的權(quán)限!!"
            echo "------------------------------"
            elif [ $Login == "/sbin/nologin" ];then
            echo "該用戶沒有登錄系統(tǒng)的權(quán)限!!"
            echo "------------------------------"
            fi
          fi

          四、加固系統(tǒng)的一些配置

          #! /bin/bash
          # Function:對賬戶的密碼的一些加固
          read -p "設置密碼最多可多少天不修改:" A
          read -p "設置密碼修改之間最小的天數(shù):" B
          read -p "設置密碼最短的長度:" C
          read -p "設置密碼失效前多少天通知用戶:" D
          sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS '$A'' /etc/login.defs
          sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS '$B'' /etc/login.defs
          sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN '$C'' /etc/login.defs
          sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE '$D'' /etc/login.defs

          echo "已對密碼進行加固,新用戶不得和舊密碼相同,且新密碼必須同時包含數(shù)字、小寫字母,大寫字母!!"
          sed -i '/pam_pwquality.so/c\password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1' /etc/pam.d/system-auth

          echo "已對密碼進行加固,如果輸入錯誤密碼超過3次,則鎖定賬戶!!"
          n=`cat /etc/pam.d/sshd | grep "auth required pam_tally2.so "|wc -l`
          if [ $n -eq 0 ];then
          sed -i '/%PAM-1.0/a\auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300' /etc/pam.d/sshd
          fi

          echo  "已設置禁止root用戶遠程登錄!!"
          sed -i '/PermitRootLogin/c\PermitRootLogin no'  /etc/ssh/sshd_config

          read -p "設置歷史命令保存條數(shù):" E
          read -p "設置賬戶自動注銷時間:" F
          sed -i '/^HISTSIZE/c\HISTSIZE='$E'' /etc/profile
          sed -i '/^HISTSIZE/a\TMOUT='$F'' /etc/profile

          echo "已設置只允許wheel組的用戶可以使用su命令切換到root用戶!"
          sed -i '/pam_wheel.so use_uid/c\auth required pam_wheel.so use_uid ' /etc/pam.d/su
          n=`cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l`
          if [ $n -eq 0 ];then
          echo SU_WHEEL_ONLY yes >> /etc/login.defs
          fi

          echo "即將對系統(tǒng)中的賬戶進行檢查...."
          echo "系統(tǒng)中有登錄權(quán)限的用戶有:"
          awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd
          echo "********************************************"
          echo "系統(tǒng)中UID=0的用戶有:"
          awk -F: '($3=="0"){print $1}' /etc/passwd
          echo "********************************************"
          N=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
          echo "系統(tǒng)中空密碼用戶有:$N"
          if [ $N -eq 0 ];then
           echo "恭喜你,系統(tǒng)中無空密碼用戶!!"
           echo "********************************************"
          else
           i=1
           while [ $N -gt 0 ]
           do
              None=`awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'`
              echo "------------------------"
              echo $None
              echo "必須為空用戶設置密碼!!"
              passwd $None
              let N--
           done
           M=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
           if [ $M -eq 0 ];then
            echo "恭喜,系統(tǒng)中已經(jīng)沒有空密碼用戶了!"
           else
          echo "系統(tǒng)中還存在空密碼用戶:$M"
           fi
          fi

          echo "即將對系統(tǒng)中重要文件進行鎖定,鎖定后將無法添加刪除用戶和組"
          read -p "警告:此腳本運行后將無法添加刪除用戶和組!!確定輸入Y,取消輸入N;Y/N:" i
          case $i in
                [Y,y])
                      chattr +i /etc/passwd
                      chattr +i /etc/shadow
                      chattr +i /etc/group
                      chattr +i /etc/gshadow
                      echo "鎖定成功!"
          ;;
                [N,n])
                      chattr -i /etc/passwd
                      chattr -i /etc/shadow
                      chattr -i /etc/group
                      chattr -i /etc/gshadow
                      echo "取消鎖定成功!!"
          ;;
                 *)
                      echo "請輸入Y/y or N/n"
          esac


          最近很多小伙伴找我要一些程序員必備資料,于是我翻出了壓箱底的寶藏,免費分享給大家!


          掃描海報二維碼免費獲取。


          瀏覽 953
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  caopen人人 | 欧美AAAAAAAAAA特级 | 亚州高清免费播放 | 狼友视频首页 | www.91熊猫成人网 |