1、编写脚本实现传入进程pid,查看对应进程/proc下CPU、内存指标
#!/bin/bash
read -p "Input PID Value: " pid
pid_exist=`ps aux|awk '{print $2}'|grep -w $pid`
if [ ! $pid_exist ];then
echo "$pid is not exist!!"
else
echo "Memory Usage :"
cat /proc/$pid/status | grep ^Vm
echo "Cpu Usage : "
echo " PID LWP CPU% :"
ps -eLo pid,lwp,pcpu | grep $pid
fi
2、编写脚本实现每分钟检查一个主机端口是否存活(提示使用nmap),如果检查到端口不在线,sleep 10s,如果三次都不存在则记录到日志
#!/bin/bash
var1=`nmap 192.168.37.128`
var2=`nmap 192.168.37.128 | grep ^[0-9] | awk '{print $2}'| wc -l`
for i in {1..3}; do
echo 'Execute '$i' times'
if [ $var2 -eq 0 ];then
sleep 10s
else
echo $var1 >> nmap.log
fi
done
3、编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件
#!/bin/bash
var1=`basename $1`
[[ "$var1" =~ ".sh" ]] && chmod +x $1 || echo "非脚本文件"
4、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统
nologin.sh
#!/bin/bash
read -p "请输入禁止的用户:" user
uid=$( id $user |tr " " @ |cut -d@ -f1 |grep -o "[0-9]\{3,\}" )
[ $uid -ge 500 ] && usermod -s /bin/nologin $user || echo '该用户为系统用户,无法禁止!'
echo '该用户已禁止登陆'
login.sh
#!/bin/bash
read -p "请输入允许登录的用户:" user
uid=$( id $user |tr " " @ |cut -d@ -f1 |grep -o "[0-9]\{3,\}" )
[ $uid -ge 500 ] && usermod -s /bin/bash $user || echo '该用户为系统用户'
echo '该用户已允许登陆'
5、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和
#!/bin/bash
var1=$(sed -n "10p" /etc/passwd | cut -d: -f3)
var2=$(sed -n "20p" /etc/passwd | cut -d: -f3)
let var=var1+var2
echo $var