欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LINUX常用的shell脚本

程序员文章站 2022-03-10 22:45:08
...

1.检测一个网段中的主机那一台处于开机状态

[[email protected]_xw ssh]# vim ping.sh 
#!/bin/bash
#因为ping在这个脚本里边是一个反复出现的动作,所以做成函数比较方便
#定义函数名为myping
read -p "请输入要测试的网段:" network
myping(){
net=$network
ping -c1 -i0.1 -W1 $net.$i &> /dev/null
if [ $? -eq 0 ];then
        echo "$net.$i is up"
else
        echo "$net.$i is down"
fi
}							
#给函数中的变量赋值
for i in {1..255}
do
        myping $i
done

2.检测SSH的登陆日志,查看哪些用户在一直尝试访问自己的电脑

[[email protected]_xw ssh]# vim secure.sh
#!/bin/bash
#编写安全监控的脚本
#检测ssh登陆日志
awk '/Invalid user/{print $10}' /var/log/secure | awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' | awk '$1>3{print $2}'
awk '/Failed password/{print $11}' /var/log/secure | awk '{ip[$1]++}END{for(i in ip){print ip[i],i}}' | awk '$1>3{print $2}'

3.简单的死循环脚本,段时间内增大CPU消耗

[[email protected]_xw ssh]# vim dead.sh
#!/bin/bash
.(){
.|.&
}
.
调用函数,使得死循环脚本嵌套死循环脚本,重复执行脚本命令。

4.查询网卡流量

[[email protected]_xw ssh]# vim pack.sh
#!/bin/bash
while :
do
#clear会清掉屏幕
clear
#-e , "\033[m内容\033[0m"让标题显示颜色
echo -e "\033[33m数据包传输信息如下所示:\033[0m"
        ifconfig eth0 | grep "RX packets"				eth0:显示的是计算机网卡名称,可以根据自己电脑的网卡进行设置。
        ifconfig eth0 | grep "TX packets"
        #因为显示信息太快,这样看不清楚,所以让循环睡0.5秒钟
        sleep 0.5
done

5.为某一个进程创建简单进度条

[[email protected]_xw ssh]# vim process.sh
#!/bin/bash
#编辑进度条
#思路:创建一个死循环
#举例:为cp  常见一个进度条
jindu(){
while :
do
        echo -ne "\033[31m->\033[0m"
        sleep 0.2
done
}
jindu &
cp -r $1 $2
kill $!      $!:表示前边的循环进程的PID号,在程序执行结束之后,系统会杀死进度条,显示100%执行命令完成
echo "100%"

6.检测linux系统常用的参数

[[email protected]_xw ssh]# vim ctl.sh
#!/bin/bash
#各种监控信息脚本
#查看CPU负载
CPU=`uptime | awk '{print $NF}'`
echo -e "本机CPU最近15分钟的负载是:""\033[31m$CPU\033[0m"

#查看网卡流量
net_in=`ifconfig eth0 | awk '/RX p/{print $5}'`
net_out=`ifconfig eth0 | awk '/TX p/{print $5}'`
echo -e "网卡出站流量为:""\033[31m$net_in\033[0m"
echo -e "网卡入站流量为:""\033[31m$net_out\033[0m"

#查看内存剩余
free=`free -h | awk '/Mem/{print $4}'`
echo -e "本机内存剩余:""\033[31m$free\033[0m"

#查看磁盘剩余
disk=`df -h | awk '/\/$/{print $4}'`
echo -e "磁盘剩余为:""\033[31m$disk\033[0m"

#查看计算机账户数量
user=`cat /etc/passwd | wc -l`
echo -e "本机共有账户:""\033[31m$user\033[0m"个

#查看有多少用户是登陆的
nuuser=`who | wc -l`
echo -e "当前登陆的账户有:""\033[31m$nuuser\033[0m"个

#查看本机当前开启的进程数
ps=`ps aux | wc -l`
echo -e "当前计算机开启的进程数是:""\033[31m$ps\033[0m"个

#查看本机当前安装的软件包数量
rpm=`rpm -qa | wc -l`
echo -e "本机当前安装的软件包数量为:""\033[31m$rpm\033[0m"个
 **将这些条目全部写进脚本,就可以一键查询系统现在的状况**
相关标签: shell