每天五个shell脚本实例学习1【centos7环境】

  1. 通过位置变量创建Linux系统账户及密码
#!/bin/bash    
useradd "$1"
echo "$2" | passwd --stdin "$1"

在这里插入图片描述

ps:以下标号代表脚本中的行号

    1. #! 指定脚本的解释器程序路径,该shell脚本是用/bin/bash解释器 来解释执行的
    1. $1 为该脚本执行时的第一个参数
    1. $2 为该脚本执行的第二个参数
  • 实际操作中最好不要用该方法修改密码,因为可通过history查到密码,并且也可能会导致误操作
  1. 每五分钟使用tar命令备份指定目录下的文件
    (1)编写脚本
    将/root/shell100目录下的所有文件备份,以log-日期的格式
#!/bin/bash
tar -czf log-`date +%Y%m%d%S`.tar.gz /root/shell100
    1. -czf将目录中所有的文件打包成.tar 后,并将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
    1. 其中date命令需要用反引号包起来,反引号主要用来引用一些函数、命令输出等,执行时系统会尝试将反引号中的内容当作一个命令执行
  • 执行时,提示Removing leading … 是因为tar 命令默认相对路径
    (2) 编写定时任务
[root@ZYT-Test1 shell100]# crontab -e
*/1 * * * * /root/shell100/day1-2.sh
    1. crontab -ed 开启系统预设编辑器,开启crontab,编写定时任务
    1. minute可以设置0-59分, hour可以设置0-23小时,day (日期)可以设置1-31号, month(月份)可以设置1-12月,week (星期)可以设置0-7间的星期几[0和7都表示星期天]
  1. 一键部署LNMP (RPM包版本)
#!/bin/bash
yum -y install httpd
yum -y install mariadb mariadb-devel mariadb-server
yum -y install php php-mysql

systemctl enable httpd mariadb
systemctl start httpd mariadb

  1. 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员
#!/bin/bash
disk_size=$(df / | awk '/\//{print $4}')
mem_size=$(free |awk '/Mem/{print $4}')
while :
do
if [ $disk_size -le 512000 -a $mem_size -le 1024000 ];then
    mail -s Warning root <
    1. df 命令:检查linux服务器的文件系统的磁盘空间占用情况。可以利用df来获取硬盘被占用了多少空间,剩多少空间。
  • df / : 查看整个磁盘占用情况
  • awk : 文本分析工具,

每天五个shell脚本实例学习1【centos7环境】_第1张图片

    1. free命令: 显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存

每天五个shell脚本实例学习1【centos7环境】_第2张图片

    1. if语句中做了一个判断,其中 -le是小于等于,-a是与
    1. mail -s Warning root <
  • 表示 将一个标题为Warning,内容为 <中包含的信息,发送给root 用户

为了能满足条件以发送邮件,我将脚本中的内存限制改为了 16000000,执行脚本之后查看邮件

cat /var/spool/mail/root 

每天五个shell脚本实例学习1【centos7环境】_第3张图片

  1. 脚本生成一个100以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜值结果(大于小于或等于),直到用户猜对脚本结束
#!/bin/bash
num=$[RANDOM%100+1]
while :
do
    read -p "随机生成一个数(1-100),猜一猜是几:" user_num
    if [ $user_num -eq $num ];then
        echo "恭喜,猜对了!"
        exit
    elif [ $user_num -gt $num ];then
        echo "猜大了"
    else
        echo "猜小了"
    fi
done

每天五个shell脚本实例学习1【centos7环境】_第4张图片

    1. RANDOM: 系统自带变量,为0-32767的随机数
    1. 利用取余将随机数变为1-100之间的数
    1. -gt: 大于
    1. read -p : -p后跟提示信息,将输入存入到user_num 变量中

你可能感兴趣的:(Linux学习,shell脚本)