这是我参与 8 月更文挑战的第 29 天,活动详情查看: 8月更文挑战
1.判断指定进程的运行情况
#!/bin/bash
NAME=httpd #这里输入进程的名称
NUM=$(ps -ef |grep $NAME |grep -vc grep)
if [ $NUM -eq 1 ]; then
echo "$NAME running."
else
echo "$NAME is not running!"
fi
2.判断用户是否存在
#!/bin/bash
read -p "请输入用户:" user
for i in `awk -F : '{print $1}' /etc/passwd`
do
if [ $i == $user ]
then
echo "用户已存在!"
exit
else
isfind=false
fi
done
echo "用户不存在!"
3.生成随机数
#!/bin/bash
read -p "请输入随机生成的数字位数:" num
echo $RANDOM | cksum | cut -c 1-$num
4.判断软件包是否安装
read -p "请输入要查询的软件包:" software
if rpm -q $software &>/dev/null ;
then
echo "软件包已经安装!"
else
echo "软件包未安装!"
fi
5.判断主机是否存活
ip_list="192.168.254.1 192.168.254.10" #定义一个主机列表
for ip in $ip_list;do
NUM=1
while [ $NUM -le 3 ];do
if ping -c 1 $ip > /dev/null;then
echo "$ip 存在于网络中!"
break
else
echo "$ip 不存在于网络中!"
break
fi
done
done
6.判断指定主机端口状态
HOST=127.0.0.1 #被扫描主机
PORT="22 80 8080" #指定需要扫描的端口
for PORT in $PORT; do #进行for循环
if echo &>/dev/null > /dev/tcp/$HOST/$PORT; then
echo "$PORT open"
else
echo "$PORT close"
fi
done
7.获取主机IP地址
#!/bin/bash
IP=$(ip address show | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
echo "$IP"
8.判断文件或目录是否存在
#!/bin/bash
if [ $# -eq 0 ];then
echo "未输入任何参数,请输入参数"
echo "用法:$0 [文件名 | 目录名]"
fi
if [ -f $1 ]; then
echo "该文件 存在"
ls -l $1
elif [ -d $1 ]; then
echo "该目录 存在"
ls -ld $1
else
echo "该文件or目录 不存在"
fi
9.显示系统信息
#!/bin/bash
#
HOSTNAME=`hostname`
IP=`ip a show ens33 | grep "inet" | grep -v "inet6" | awk '{print $2}' | cut -d'/' -f1`
SYSTEM=`cat /etc/centos-release`
CORE=`uname -r`
CPU=`cat /proc/cpuinfo | grep 'model name' |uniq | cut -d: -f2`
MEMORY=`free -mh | grep -i "mem" | awk '{print$2}'`
DISKNUM=`fdisk -l | grep -i "/dev" | grep -i "disk" | wc -l`
systemname=("HOSTNAME" "IP" "SYSTEM VERSION" "CORE VERSION" "CPU" "MEMORY SIZE")
systeminfo=("$HOSTNAME" "$IP" "$SYSTEM" "$CORE" "$CPU" "$MEMORY")
for s in `seq 1 $DISKNUM`;do
eval DISK$s=`fdisk -l | grep -i "/dev" | grep -i "disk" | head -$s | tail -1| awk '{print $2$3$4}' | cut -d',' -f1`
eval systeminfo[$(($s+5))]='$'DISK$s
systemname[$(($s+5))]="DISK$s SIZE"
done
for i in ${!systeminfo[*]};do
echo "--------------------------------------------------------------"
printf "|%-15s| %-43s|\n" "${systemname[$i]}" "${systeminfo[$i]}"
done
echo "--------------------------------------------------------------"
10.判断输入的是否为IP地址
#!/bin/bash
IP=$1
if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
FIELD1=$(echo $IP|cut -d. -f1)
FIELD2=$(echo $IP|cut -d. -f2)
FIELD3=$(echo $IP|cut -d. -f3)
FIELD4=$(echo $IP|cut -d. -f4)
if [ $FIELD1 -le 255 -a $FIELD2 -le 255 -a $FIELD3 -le 255 -a $FIELD4 -le 255 ];
then
echo "$IP 是一个IP地址!"
else
echo "$IP 不是一个IP地址!"
fi
else
echo "IP地址格式错误!"
fi