0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常見的Linux高效運(yùn)維shell腳本介紹

jf_TEuU2tls ? 來源:浩道linux ? 作者:浩道linux ? 2022-10-13 09:36 ? 次閱讀

前言

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

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

二、根據(jù)進(jìn)程名過濾進(jìn)程信息

會顯示出該進(jìn)程名包含的所有線程

#! /bin/bash
# Function: 根據(jù)輸入的程序的名字過濾出所對應(yīng)的PID,并顯示出詳細(xì)信息,如果有幾個PID,則全部顯示
read-p"請輸入要查詢的進(jìn)程名:"NAME
N=`ps -aux | grep$NAME| grep -v grep | wc -l`##統(tǒng)計(jì)進(jìn)程總數(shù)
if[$N-le 0 ];then
echo"該進(jìn)程名沒有運(yùn)行!"
fi
i=1
while[$N-gt 0 ]
do
echo"進(jìn)程PID: `ps -aux | grep$NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$2}'`"
echo"進(jìn)程命令:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$11}'`"
echo"進(jìn)程所屬用戶: `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"進(jìn)程開始運(yùn)行的時(shí)刻:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$9}'`"
echo"進(jìn)程運(yùn)行的時(shí)間:` ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$11}'`"
echo"進(jìn)程狀態(tài):`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$8}'`"
echo"進(jìn)程虛擬內(nèi)存:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$5}'`"
echo"進(jìn)程共享內(nèi)存:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$6}'`"
echo"***************************************************************"
letN-- 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"設(shè)置密碼最多可多少天不修改:"A
read-p"設(shè)置密碼修改之間最小的天數(shù):"B
read-p"設(shè)置密碼最短的長度:"C
read-p"設(shè)置密碼失效前多少天通知用戶:"D
sed -i'/^PASS_MAX_DAYS/cPASS_MAX_DAYS '$A''/etc/login.defs
sed -i'/^PASS_MIN_DAYS/cPASS_MIN_DAYS '$B''/etc/login.defs
sed -i'/^PASS_MIN_LEN/cPASS_MIN_LEN '$C''/etc/login.defs
sed -i'/^PASS_WARN_AGE/cPASS_WARN_AGE '$D''/etc/login.defs

echo"已對密碼進(jìn)行加固,新用戶不得和舊密碼相同,且新密碼必須同時(shí)包含數(shù)字、小寫字母,大寫字母?。?
sed -i'/pam_pwquality.so/cpassword 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"已對密碼進(jìn)行加固,如果輸入錯誤密碼超過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/aauth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300'/etc/pam.d/sshd
fi

echo"已設(shè)置禁止root用戶遠(yuǎn)程登錄??!"
sed -i'/PermitRootLogin/cPermitRootLogin no'/etc/ssh/sshd_config

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

echo"已設(shè)置只允許wheel組的用戶可以使用su命令切換到root用戶!"
sed -i'/pam_wheel.so use_uid/cauth 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
echoSU_WHEEL_ONLY yes >> /etc/login.defs
fi

echo"即將對系統(tǒng)中的賬戶進(jìn)行檢查...."
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"必須為空用戶設(shè)置密碼?。?
passwd$None
letN--
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)中重要文件進(jìn)行鎖定,鎖定后將無法添加刪除用戶和組"
read-p"警告:此腳本運(yùn)行后將無法添加刪除用戶和組??!確定輸入Y,取消輸入N;Y/N:"i
case$iin
[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

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11310

    瀏覽量

    209620
  • PID
    PID
    +關(guān)注

    關(guān)注

    35

    文章

    1472

    瀏覽量

    85554
  • Shell腳本
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    7971

原文標(biāo)題:【經(jīng)典shell腳本分享】幾個Linux高效運(yùn)維shell腳本!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    幾個經(jīng)典高效linux腳本

    今天浩道跟大家分享硬核shell干貨,以下幾個腳本皆為經(jīng)典高效linux腳本,拿來即用!
    發(fā)表于 10-21 09:04 ?1496次閱讀

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?645次閱讀

    Linux shell腳本分享

    今天浩道跟大家分享幾個Linux運(yùn)中常用到的shell腳本
    發(fā)表于 07-18 09:53 ?560次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    Linux中常用的MySQL運(yùn)腳本

    Linux中,使用MySQL進(jìn)行常見運(yùn)任務(wù)時(shí),可以編寫一些腳本來簡化操作。以下是一些常用的MySQL
    發(fā)表于 09-07 09:49 ?748次閱讀

    Linux中常用的Shell腳本示例

    當(dāng)談?wù)撘痪€運(yùn)工作中的常用 Shell 腳本時(shí),以下是一些實(shí)用的例子。
    發(fā)表于 09-08 09:42 ?626次閱讀

    100個Linux Shell腳本總結(jié)

    不知道大家有沒有發(fā)現(xiàn),會編寫shell腳本運(yùn),工資不會低,并且他的工作會很輕松!今天浩道跟大家分享每一個Linux
    的頭像 發(fā)表于 12-05 09:28 ?1265次閱讀

    Linux運(yùn)都要會哪些shell技能

    在充斥著各種的互聯(lián)網(wǎng)+的數(shù)字時(shí)代,Linux運(yùn)也越來越趨于自動化方向發(fā)展,越來越多的運(yùn)工作者奔跑在了自動化
    發(fā)表于 11-30 17:38

    shell腳本的相關(guān)資料分享

    腳本提供數(shù)組、循環(huán)、條件判斷的等功能shell腳本一般是Linux運(yùn)或者系統(tǒng)管理員要掌握的,作
    發(fā)表于 12-23 06:17

    Linux Shell腳本編程基礎(chǔ)和相關(guān)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Linux Shell腳本編程基礎(chǔ)和相關(guān)資料合集免費(fèi)下載。
    發(fā)表于 05-24 17:53 ?26次下載
    <b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>編程基礎(chǔ)和相關(guān)資料合集免費(fèi)下載

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南

    Linux系統(tǒng)命令及shell腳本實(shí)踐指南資料下載。
    發(fā)表于 06-01 14:47 ?28次下載

    運(yùn)常用的34個Linux Shell腳本

    Shell 腳本編程是在 Linux 下學(xué)習(xí)或練習(xí)編程的最簡單的方式。尤其對運(yùn)工程師處理著自動化任務(wù),且要開發(fā)新的簡單的實(shí)用程序或工具等(
    的頭像 發(fā)表于 05-09 15:26 ?1527次閱讀

    Linux開發(fā)_Makefile規(guī)則與Shell腳本語言

    介紹Linux下Makefile編程知識點(diǎn),Shell腳本知識點(diǎn)。
    的頭像 發(fā)表于 09-17 15:40 ?1295次閱讀

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Linux Shell腳本經(jīng)典案例分享

    ? 作為一名 Linux 運(yùn)工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時(shí)間做自己的事。最近在網(wǎng)上沖浪的時(shí)候,發(fā)現(xiàn)大家對Shell
    發(fā)表于 06-16 14:03 ?652次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享

    Linux從零到精通:最簡單的Shell腳本入門教程

    在數(shù)字化時(shí)代的浪潮中,Linux操作系統(tǒng)憑借其高效、穩(wěn)定、開源的特性,成為了無數(shù)開發(fā)者和系統(tǒng)管理員的首選。 而在Linux的龐大生態(tài)系統(tǒng)中,Shell編程無疑是連接用戶與系統(tǒng)內(nèi)核的橋梁
    的頭像 發(fā)表于 12-05 09:56 ?458次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最簡單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程