Linux脚本
程序员文章站
2022-12-04 11:55:22
编写脚本实现传入进程pid,查看对应进程/proc下CPU、内存指标 编写脚本实现每分钟检查一个主机端口是否存活(提示使用nmap),如果检查到端口不在线, sleep 10s ,如果三次都不存在,记录到日志 判断参数文件是否为一个以.sh为后缀的文件,如果是,加执行权限,如果不是,提醒用户 编写脚 ......
编写脚本实现传入进程pid,查看对应进程/proc下cpu、内存指标
1 #!/bin/bash 2 read -p "please input pid to see cpu&mem infos: " pid 3 checkpid=`ps aux | sed -nr "1! p" | tr -s " " | cut -d " " -f 2 | grep "$pid"` 4 if [ ! $checkpid ];then 5 echo "$pid" 'does not exit! please check and input a exit pid.' 6 else 7 echo "memory usage :" 8 echo "`cat /proc/$pid/status | grep ^vm`" 9 echo "cpu usage :" 10 echo "`cat /proc/$pid/status | grep ^cpu`" 11 echo "right now %cpu is`ps -p $pid -o pcpu | sed -nr "2p"`" 12 fi
编写脚本实现每分钟检查一个主机端口是否存活(提示使用nmap),如果检查到端口不在线, sleep 10s ,如果三次都不存在,记录到日志
1 #!/bin/bash 2 #ip=`ip addr|awk -f '[ /]+' 'nr==9 {print $3}'` 3 read -p 'please input the host ip:' ip 4 count=`nmap $ip| grep ^[[:digit:]]|wc -l` 5 i=0 6 while true; 7 do 8 if [ $count -eq 0 ];then 9 let i=i+1 10 # echo $i 11 if [ $i -ge 3 ];then 12 echo $ip >> /data/nmap.log 13 echo `nmap $ip`>> /data/nmap.log 14 i=0 15 # echo $i 16 fi 17 sleep 10 18 else 19 echo 'running' 20 sleep 60 21 fi 22 done
判断参数文件是否为一个以.sh为后缀的文件,如果是,加执行权限,如果不是,提醒用户
1 ##excute.sh 2 3 #!/bin/bash 4 5 if [ $# -lt 1 ];then 6 echo please input a filename... 7 exit 3 8 elif [ -f $1 ];then 9 if echo $1 | grep .sh &> /dev/null ;then 10 chmod +x $1 11 echo "modify $1 jurisdiction finished..." 12 else 13 echo "$1 not is script file..." 14 fi 15 else 16 echo "$1 not is common file..." 17 fi
编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统
1 #!/bin/bash 2 3 if [ ! -f "/etc/nologin" ];then 4 touch /etc/nologin 5 #echo "all user is not allow to login!" 6 fi 7 #!/bin/bash 8 9 if [ -f "/etc/nologin" ];then 10 rm -f /etc/nologin 11 #echo "all user is allowed to login!" 12 fi
计算/etc/passwd 中第10行和第20行用户的uid之和
1 ## sumid.sh 2 3 #!/bin/bash 4 5 id=`sed -nr '10,20s#.*:([0-9]+):[0-9].*#\1#p' /etc/passwd` 6 num=(`echo $id`) 7 for i in `seq 0 10`;do 8 let sum+=${num[$i]} 9 done 10 echo $sum