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

    文章

    1471

    浏览量

    85281
  • 脚本
    +关注

    关注

    1

    文章

    387

    浏览量

    14829
  • 运维
    +关注

    关注

    1

    文章

    251

    浏览量

    7540

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

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

收藏 人收藏

    评论

    相关推荐

    Linux shell脚本分享

    今天浩道跟大家分享几个Linux中常用到的shell脚本
    发表于 07-18 09:53 547次阅读
    Linux shell<b class='flag-5'>脚本</b>分享

    Linux中常用的MySQL脚本

    在Linux中,使用MySQL进行常见的任务时,可以编写一些脚本来简化操作。以下是一些常用的MySQL
    发表于 09-07 09:49 735次阅读

    Linux中常用的Shell脚本示例

    当谈论一线工作中的常用 Shell 脚本时,以下是一些实用的例子。
    发表于 09-08 09:42 606次阅读

    Linux常用脚本整理

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

    诚聘高级自动化工程师

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

    学习Linux发展方向

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

    Linux都要会哪些shell技能

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

    何为智能

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

    优秀工程师应当具备哪些技能

    对于我们这些刚入门的小白来说,极强的好奇心总会驱使我们去涉猎各种技术,弄到最后很可能该学的知识半懵半解,知识体系混乱,学习毫无章法。因此,我们学习时要有一个明确的目标和知识体系(也是我学习的目标),下面大概向大家介绍以下优秀
    的头像 发表于 06-28 16:44 6742次阅读

    一个工程师有话说:工作非常忙、很忙、比较忙

    一个狗有话说,经历了手动脚本、自动化
    的头像 发表于 10-19 11:09 8350次阅读

    常用的34个Linux Shell脚本

    Shell 脚本编程是在 Linux 下学习或练习编程的最简单的方式。尤其对工程师处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能。
    的头像 发表于 05-09 15:26 1487次阅读

    这5个常见场景,可以尝试用Python去解决!

    当然,岗位的具体职责和要求可能因公司而异,有些公司可能并不要求工程师会使用 Python 脚本。但总的来说,学习 Python 可以
    的头像 发表于 01-16 09:48 736次阅读

    使用Python脚本实现自动化任务

    许多运工程师会使用 Python 脚本来自动化任务。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于许多不同的领域。
    的头像 发表于 04-08 10:36 1627次阅读

    软通动力集成方案,助力企业数智化升级

    出席峰会,见证了华为行业服务解决方案Hi-OPS的全新升级,并分享了软通动力与华为联合方案优秀实践。 华为行业
    的头像 发表于 11-17 22:05 605次阅读

    管理平台:从基础到智能的飞跃

    管理平台为企业提供了从基础到智能的飞
    的头像 发表于 04-16 16:26 394次阅读