shell脚本入门 (1)

1、使用脚本删除用户,要求手动输入用户名

   #!/usr/bin/env bash
read -p "请输入要删除的用户名:" user
if id $user &>/dev/null
then
    echo "alice 存在,准备删除"
    userdel -r $user
else
    echo "用户不存在"
fi              

2、判断当前用户是否是root,是root用户创建手动输入的一个用户

#!/bin/bash
if [ `id -u` -eq 0 ]
或者if [ "$USER" = "root" ]
或者if id $user &>/dev/null
then read -p "请输入用户名:" username
useradd  $username
fi

3、判断当前用户是否是root用户,如果是安装httpd,如果不是提示不可以安装。

#!/bin/bash
if [ `id -u` -eq 0 ]
或者if [ "$USER" = "root" ]
或者if id $user &>/dev/null
then yum -y install httpd
else echo "不可以安装"
fi

4、使用if语句写一个判断成绩的脚本,大于等于90分的为优秀,80-90的为良好,70-80的输出你需要加把
劲儿了,60-70的输出你需要努力了,<60的输出,你可以。。。。。。

#!/bin/bash
read -p "请输入成绩[0-100]:" grade
if [[ ! $grade =~ ^[0-9]+$ ]]
then  echo " 不是数字"
exit
fi
if    [ $grade -ge 90 $grade -le 100]
then
     echo "优秀"
elif  [ $grade -ge 80 a  $grade -lt 90 ]
then
      echo "良好"
elif  [ $garde -ge 70 a  $grade -lt 80 ]
then
      echo "你需要加把劲了"
elif  [ $grade -ge 60 a $grade -lt 70 ]
then
      echo "你需要努力了"
elif [ $grade -lt 60 a $grade -ge 60 ]
then
       echo "你可以。。。"
else 
       echo " 成绩无效" 
fi

1 判断一个用户是否存在

#!/bin/bash
read -p "请输入用户名:" username
if   [[ `id -u $username` =~ ^[0-9]+$ ]]
then  echo "存在"
else echo "不存在"
fi

2.判断当前内核的主版本是否为2,且次版本是否大于6

#!/bin/bash
zhubanben=`uname -r |awk -F"." '{print $1}'`
cibanben=`uname -r |awk -F"." '{print $2}'`
if  [ "$zhubanben" -eq 0 ] && [ "$cibanben" -gt 6 ]
then echo "主版本号为2,且次版本号大于6"
else
    echo "主版本号不为2"
fi

3.判断vsftpd软件包是否安装,如果没有,则自动安装

#!/bin/bash
if rpm -q vsftpd &> /dev/null 
then  echo "存在"
else
      yum -y install vsftpd
fi

4.判断: 如果vsftpd启动,输出以下信息:
vsftpd服务器已启动…
vsftpd监听的端口是:
vsftpd的进程PID是:

#!/bin/bash
ftp=vsftpd
if [[ `pgrep $ftp` =~ ^[0-9]+$ ]]
then echo "服务已启动"
pid=`pgrep $ftp`
port=`netstat -nltp |grep vsftpd |awk '{print $4}'|awk -F":" '{print $NF}'`

     echo "vsftpd的pid是:$pid"
     echo "vsftpd的端口是:$port"
else echo "服务没有启动"
fi

5.编写脚本,如果:
根分区剩余空间小于20%
内存已用空间大于80%
向用户alice发送告警邮件,邮件的内容包含使用率相关信息
请配合crond每5min检查一次

#!/bin/bash
disk_use=`df -Th |head -2 |tail -1 |awk '{print $(NF-1)}'|awk -F"%" '{print $1}'`
mem_total=`free -m|grep /&|awk '{print $2}'`
mem_used=`free -m|grep /&|awk '{print $3}'`
mem_size=`echo "scale=2;$mem_used/$mem_total "|bc|awk -F"." '{print $2}'`
if [ $size -gt 80 ]
then
     echo "内存使用率为$mem_size%"    |  mail -s "警告消息" alice
fi
if [ "$disk_use" -ge 80 ]
then
     echo "根分区使用率为$disk_use%"    |  mail -s "警告消息" alice
fi

6.判断当前用户是否是root用户,如果是安装httpd(要求考虑到网络的连通性和yum源是否好用的问
题),如果不是提示不可以安装。如果apache安装成功了还需要检查是否能够正常访问,还需要考虑到防
火墙和selinux的问题

#!/usr/bin/bash
gateway=10.30.162.1
if [ $UID -ne 0 ];then
    echo "Permission Deny"
    exit
fi
ping -c2 www.baidu.com &>/dev/null
if [ $? -ne 0 ];then
    if ! ping -c2 $gateway &>/dev/null
    then
        echo "请检查网关"
    else
        echo "有问题"
    fi
    exit
fi
yum makecache &>/dev/null
if [ $? -ne 0 ];then
    echo "yum不可用,配置yum"
    if [ ! -d /etc/yum.repos.d/backup ];then
        mkdir /etc/yum.repos.d/backup
    else
        mv /etc/yum.repos.d/* /etc/yum.repos.d/backup &>/dev/null
        wget http://mirrors.163.com/.help/CentOS7-Base-163.repo -O /etc/yum.repos.d/163.repo
    fi
fi
yum -y install httpd elinks
if [ $? -eq 0 ];then
    systemctl start httpd;systemctl enable httpd
    systemctl stop firewalld;systemctl disable firewalld
    setenforce 0;sed  -ri 's/^SELINUX=enforcing/SELINUX=disable/' /etc/selinux/config
    echo welcome > /var/www/html/index.html
    elinks --dump http://localhost
fi

猜你喜欢

转载自blog.csdn.net/qq_42989565/article/details/82120624