0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀运维脚本鉴赏

dyquk4xk2p3d 来源:CSDN 2023-07-06 10:49 次阅读

	

	

一、根据PID过滤进程所有信息
#!/bin/bash
#Function:根据用户输入的PID,过滤出该PID所有的信息
read-p"请输入要查询的PID:"P
n=`ps-aux|awk'$2~/^'$P'$/{print$11}'|wc-l`
if[$n-eq0];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"内存占用率:`ps -aux| awk '$2~/^'$P'$/{print$4}'`%"
echo"进程开始运行的时刻:`ps -aux| awk '$2~/^'$P'$/{print$9}'`"
echo"进程运行的时间:`ps -aux| awk '$2~/^'$P'$/{print$10}'`"
echo"进程状态:`ps -aux| awk '$2~/^'$P'$/{print$8}'`"
echo"进程虚拟内存:`ps -aux| awk '$2~/^'$P'$/{print$5}'`"
echo"进程共享内存:`ps -aux| awk '$2~/^'$P'$/{print$6}'`"
echo"--------------------------------"

ea532f1e-1b8c-11ee-962d-dac502259ad0.png

二、根据进程名过滤进程信息
会显示出该进程名包含的所有线程

#!/bin/bash
#Function:根据输入的程序的名字过滤出所对应的PID,并显示出详细信息,如果有几个PID,则全部显示
read-p"请输入要查询的进程名:"NAME
N=`ps-aux|grep$NAME|grep-vgrep|wc-l`##统计进程总数
if[$N-le0];then
echo"该进程名没有运行!"
fi
i=1
while[$N-gt0]
do
echo"进程PID:`ps-aux|grep$NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$2}'`"
echo"进程命令:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$11}'`"
echo"进程所属用户:`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"内存占用率:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$4}'`%"
echo"进程开始运行的时刻:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$9}'`"
echo"进程运行的时间:` ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$11}'`"
echo"进程状态:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$8}'`"
echo"进程虚拟内存:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$5}'`"
echo"进程共享内存:`ps -aux | grep $NAME|grep-vgrep|awk'NR=='$i'{print$0}'|awk'{print$6}'`"
echo"***************************************************************"
letN--i++
done

ea85d8e2-1b8c-11ee-962d-dac502259ad0.png

三、根据用户名查询该用户的相关信息

#!/bin/bash
# Function:根据用户名查询该用户的所有信息
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"该用户有登录系统的权限!!"
echo"------------------------------"
elif[$Login=="/sbin/nologin"];then
echo"该用户没有登录系统的权限!!"
echo"------------------------------"
fi
fi

eb1dc044-1b8c-11ee-962d-dac502259ad0.png

四、加固系统的一些配置

#!/bin/bash
#Function:对账户的密码的一些加固
read-p"设置密码最多可多少天不修改:"A
read-p"设置密码修改之间最小的天数:"B
read-p"设置密码最短的长度:"C
read-p"设置密码失效前多少天通知用户:"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"已对密码进行加固,新用户不得和旧密码相同,且新密码必须同时包含数字、小写字母,大写字母!!"
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"已对密码进行加固,如果输入错误密码超过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"已设置禁止root用户远程登录!!"
sed-i'/PermitRootLogin/cPermitRootLoginno'/etc/ssh/sshd_config

read-p"设置历史命令保存条数:"E
read-p"设置账户自动注销时间:"F
sed-i'/^HISTSIZE/cHISTSIZE='$E''/etc/profile
sed-i'/^HISTSIZE/aTMOUT='$F''/etc/profile

echo"已设置只允许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"即将对系统中的账户进行检查...."
echo"系统中有登录权限的用户有:"
awk-F:'($7=="/bin/bash"){print$1}'/etc/passwd
echo"********************************************"
echo"系统中UID=0的用户有:"
awk-F:'($3=="0"){print$1}'/etc/passwd
echo"********************************************"
N=`awk-F:'($2==""){print$1}'/etc/shadow|wc-l`
echo"系统中空密码用户有:$N"
if[$N-eq0];then
echo"恭喜你,系统中无空密码用户!!"
echo"********************************************"
else
i=1
while[$N-gt0]
do
None=`awk-F:'($2==""){print$1}'/etc/shadow|awk'NR=='$i'{print}'`
echo"------------------------"
echo$None
echo"必须为空用户设置密码!!"
passwd$None
letN--
done
M=`awk-F:'($2==""){print$1}'/etc/shadow|wc-l`
if[$M-eq0];then
echo"恭喜,系统中已经没有空密码用户了!"
else
echo"系统中还存在空密码用户:$M"
fi
fi

echo"即将对系统中重要文件进行锁定,锁定后将无法添加删除用户和组"
read-p"警告:此脚本运行后将无法添加删除用户和组!!确定输入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

eb3d963a-1b8c-11ee-962d-dac502259ad0.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID
    PID
    +关注

    关注

    35

    文章

    1447

    浏览量

    84104
  • 脚本
    +关注

    关注

    1

    文章

    375

    浏览量

    14680
  • 运维
    +关注

    关注

    1

    文章

    196

    浏览量

    7375

原文标题:优秀运维脚本鉴赏

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    普及从跑腿到云一体化IT管理的常识

    自己应急写的脚本工具来辅助日常工作。4、 4.0 —— 平台化这个阶段是公司的
    发表于 06-22 14:28

    Linux常用脚本整理

    在日常工作过程中,经常要对服务器进行一些操作,整理了一些常用的一句话shell命令,使人员工作起来更加得心应手,如果您有什么好的一句话脚本,欢迎留言! 1、查找当前目录下占用为0字节的文件并删除
    发表于 10-02 21:51

    诚聘高级自动化工程师

    猎头职位:高级自动化工程师【合肥】工作职责: 1、根据基础架构管理需求,规划设计自动
    发表于 12-12 10:37

    【深圳】诚聘开发工程师

    猎头推荐职位:开发工程师工作职责:1. 负责平台开发、自动化平台维护、研究维新威廉希尔官方网站 ;2. 负责IT
    发表于 07-04 14:34

    老男孩Linux培训教程

    `  继《跟老男孩学习Linux:Web集群实战》和《跟老男孩学习Linux:Shell编程实战》后,老男孩的第三本书籍《跟老男孩学习Linux
    发表于 12-15 15:16

    linux命令大全

    Linux高端学习需要掌握大量的命令及相关工具,通读bash man page、掌握VIM使用、了解SSH是Linux高端工程师必备功课,熟练掌握Linux高端
    发表于 03-15 16:36

    ECS主动2.0,体验升级,事半功倍

    摘要: 阿里云致力于提供更好用的体验,让您使用ECS的过程更透明、高效,并实现更加标准化、自动化的方式。基于主动
    发表于 04-20 16:37

    学习Linux发展方向

    及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定工作制度和规范、配合开发人员部署并调试产品研发需要的测试环境、代码
    发表于 07-25 17:15

    Linux都要会哪些shell技能

    在充斥着各种的互联网+的数字时代,Linux也越来越趋于自动化方向发展,越来越多的工作者奔跑在了自动化
    发表于 11-30 17:38

    2019年Linux工程师的高薪出路在哪?

    、苦劳多功劳少的工作模式切换到高效的工作模式了。优秀的Linux工程师的核心工作,不是上面描述的那些,而应该是制定和完善服务标准、服务规范、制度流程、响应方案,然后通过使用已有工具以及自行开发软件
    发表于 01-17 14:52

    人员到底要不要学习开发

    人员的困惑:做要掌握网络,系统,服务,数据库,现在还要精通各种开发语言,精力都耗尽了,还能学好吗?以上5大点如果能精通一点就很牛叉了,那么,作为初中级
    发表于 01-28 17:59

    2019年Linux工程师的高薪出路在哪

    、苦劳多功劳少的工作模式切换到高效的工作模式了。优秀的Linux工程师的核心工作,不是上面描述的那些,而应该是制定和完善服务标准、服务规范、制度流程、响应方案,然后通过使用已有工具以及自行开发软件
    发表于 01-28 18:02

    linux怎么排查

    linux排查常用命令(开发专享)
    发表于 11-11 06:34

    虚拟化故障怎么办?虚拟化怎么解决?

    着信息的传输,他们就是---数据中心团队。疫情的时候,为减少疾病传染可能性,许多公司的选择了在家远程办公。对于来说,既要远程
    发表于 02-21 21:32

    何为智能

    一、何为智能?生产设备/装备是工业的重要生产工具,其可靠性、性能对工业生产有重大影响。随着工业大数据推进,设备的智能被定义为一个重要的应用领域。但何为智能
    发表于 07-12 06:34