一、根據(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-eq0];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ì)信息,如果有幾個(gè)PID,則全部顯示
read-p"請輸入要查詢的進(jìn)程名:"NAME
N=`ps-aux|grep$NAME|grep-vgrep|wc-l`##統(tǒng)計(jì)進(jìn)程總數(shù)
if[$N-le0];then
echo"該進(jìn)程名沒有運(yùn)行!"
fi
i=1
while[$N-gt0]
do
echo"進(jìn)程PID:`ps-aux|grep$NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$2}'`"
echo"進(jìn)程命令:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$11}'`"
echo"進(jìn)程所屬用戶:`ps-aux|grep$NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$1}'`"
echo"CPU占用率:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$3}'`%"
echo"內(nèi)存占用率:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$4}'`%"
echo"進(jìn)程開始運(yùn)行的時(shí)刻:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$9}'`"
echo"進(jìn)程運(yùn)行的時(shí)間:` ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$11}'`"
echo"進(jìn)程狀態(tài):`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$8}'`"
echo"進(jìn)程虛擬內(nèi)存:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$5}'`"
echo"進(jìn)程共享內(nèi)存:`ps -aux | grep $NAME|grep-vgrep|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-eq0];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/cpasswordrequisitepam_pwquality.sotry_first_passlocal_users_onlyretry=3authtok_type=difok=1minlen=8ucredit=-1lcredit=-1dcredit=-1'/etc/pam.d/system-auth
echo"已對密碼進(jìn)行加固,如果輸入錯誤密碼超過3次,則鎖定賬戶!!"
n=`cat/etc/pam.d/sshd|grep"authrequiredpam_tally2.so"|wc-l`
if[$n-eq0];then
sed-i'/%PAM-1.0/aauthrequiredpam_tally2.sodeny=3unlock_time=150even_deny_rootroot_unlock_time300'/etc/pam.d/sshd
fi
echo"已設(shè)置禁止root用戶遠(yuǎn)程登錄!!"
sed-i'/PermitRootLogin/cPermitRootLoginno'/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.souse_uid/cauthrequiredpam_wheel.souse_uid'/etc/pam.d/su
n=`cat/etc/login.defs|grepSU_WHEEL_ONLY|wc-l`
if[$n-eq0];then
echoSU_WHEEL_ONLYyes>>/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-eq0];then
echo"恭喜你,系統(tǒng)中無空密碼用戶!!"
echo"********************************************"
else
i=1
while[$N-gt0]
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-eq0];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/yorN/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)投訴
-
PID
+關(guān)注
關(guān)注
35文章
1473瀏覽量
85708 -
腳本
+關(guān)注
關(guān)注
1文章
391瀏覽量
14916 -
運(yùn)維
+關(guān)注
關(guān)注
1文章
263瀏覽量
7607
原文標(biāo)題:優(yōu)秀運(yùn)維腳本鑒賞
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Linux中常用的MySQL運(yùn)維腳本
在Linux中,使用MySQL進(jìn)行常見的運(yùn)維任務(wù)時(shí),可以編寫一些腳本來簡化操作。以下是一些常用的MySQL運(yùn)維
發(fā)表于 09-07 09:49
?768次閱讀
Linux中常用的Shell腳本示例
當(dāng)談?wù)撘痪€運(yùn)維工作中的常用 Shell 腳本時(shí),以下是一些實(shí)用的例子。
發(fā)表于 09-08 09:42
?636次閱讀
Linux運(yùn)維常用腳本整理
在日常工作過程中,經(jīng)常要對服務(wù)器進(jìn)行一些操作,整理了一些常用的一句話shell命令,使運(yùn)維人員工作起來更加得心應(yīng)手,如果您有什么好的一句話腳本,歡迎留言! 1、查找當(dāng)前目錄下占用為0字節(jié)的文件并刪除
發(fā)表于 10-02 21:51
誠聘高級運(yùn)維自動化工程師
獵頭職位:高級運(yùn)維自動化工程師【合肥】工作職責(zé): 1、根據(jù)基礎(chǔ)架構(gòu)運(yùn)維管理需求,規(guī)劃設(shè)計(jì)運(yùn)維自動
發(fā)表于 12-12 10:37
學(xué)習(xí)Linux運(yùn)維發(fā)展方向
及丟失等)、對網(wǎng)站的故障進(jìn)行監(jiān)控、解決網(wǎng)站運(yùn)行的潛在安全問題、開發(fā)自動化腳本程序提高工作效率、規(guī)劃網(wǎng)站架構(gòu)、程序發(fā)布流程和規(guī)范,制定運(yùn)維工作制度和規(guī)范、配合開發(fā)人員部署并調(diào)試產(chǎn)品研發(fā)需要的測試環(huán)境、代碼
發(fā)表于 07-25 17:15
Linux運(yùn)維都要會哪些shell技能
在充斥著各種的互聯(lián)網(wǎng)+的數(shù)字時(shí)代,Linux運(yùn)維也越來越趨于自動化方向發(fā)展,越來越多的運(yùn)維工作者奔跑在了自動化運(yùn)
發(fā)表于 11-30 17:38
何為智能運(yùn)維?
一、何為智能運(yùn)維?生產(chǎn)設(shè)備/裝備是工業(yè)的重要生產(chǎn)工具,其可靠性、性能對工業(yè)生產(chǎn)有重大影響。隨著工業(yè)大數(shù)據(jù)推進(jìn),設(shè)備的智能運(yùn)維被定義為一個(gè)重要的應(yīng)用領(lǐng)域。但何為智能
發(fā)表于 07-12 06:34
優(yōu)秀運(yùn)維工程師應(yīng)當(dāng)具備哪些技能
對于我們這些剛?cè)腴T的運(yùn)維小白來說,極強(qiáng)的好奇心總會驅(qū)使我們?nèi)ド娅C各種技術(shù),弄到最后很可能該學(xué)的知識半懵半解,知識體系混亂,學(xué)習(xí)毫無章法。因此,我們學(xué)習(xí)時(shí)要有一個(gè)明確的目標(biāo)和知識體系(也是我學(xué)習(xí)的目標(biāo)),下面大概向大家介紹以下優(yōu)秀
一個(gè)運(yùn)維工程師有話說:運(yùn)維工作非常忙、很忙、比較忙
一個(gè)運(yùn)維狗有話說,經(jīng)歷了手動運(yùn)維、腳本運(yùn)維、自動化
運(yùn)維常用的34個(gè)Linux Shell腳本
Shell 腳本編程是在 Linux 下學(xué)習(xí)或練習(xí)編程的最簡單的方式。尤其對運(yùn)維工程師處理著自動化任務(wù),且要開發(fā)新的簡單的實(shí)用程序或工具等(這里只是僅舉幾例)更是必備技能。
這5個(gè)常見運(yùn)維場景,可以嘗試用Python去解決!
當(dāng)然,運(yùn)維崗位的具體職責(zé)和要求可能因公司而異,有些公司可能并不要求運(yùn)維工程師會使用 Python 腳本。但總的來說,學(xué)習(xí) Python 可以
使用Python腳本實(shí)現(xiàn)自動化運(yùn)維任務(wù)
許多運(yùn)維工程師會使用 Python 腳本來自動化運(yùn)維任務(wù)。Python 是一種流行的編程語言,具有豐富的第三方庫和強(qiáng)大的自動化能力,適用于許多不同的領(lǐng)域。
軟通動力集成運(yùn)維方案,助力企業(yè)運(yùn)維數(shù)智化升級
出席峰會,見證了華為行業(yè)運(yùn)維服務(wù)解決方案Hi-OPS的全新升級,并分享了軟通動力與華為聯(lián)合運(yùn)維方案優(yōu)秀實(shí)踐。 華為行業(yè)
訊維運(yùn)維管理平臺:從基礎(chǔ)運(yùn)維到智能運(yùn)維的飛躍
訊維運(yùn)維管理平臺為企業(yè)提供了從基礎(chǔ)運(yùn)維到智能運(yùn)維的飛
評論