Linux脚本进阶学习笔记

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         

你可能感兴趣的:(Linux脚本进阶学习笔记)