shell脚本练习

题目

1、编写一个shell 脚本,检测 /tmp/size.log 文件。如果存在,显示它的内容;不存在则创建一个文件,将创建时间写入。

2、编写一个shell 脚本,实现批量添加 20个用户,用户名为user1-20,密码为user 后面跟随5个随机字符。

3、编写一个shell 脚本,将/usr/local 目录下大于10M的文件,转移到/tmp目录下。

第一题

复制代码
[root@192 profile.d]# vim jopl1.sh
#!/bin/bash
if [ -d "/tmp" ];
then
  echo "/tmp该目录存在"
else
  mkdir /tmp
fi

if [ -f "/tmp/size.log" ];
then
  echo "size.log该文件存在";
  cat /tmp/size.log
else
  touch /tmp/size.log;
  echo "size.log该文件不存在,已新建一个同名文件";
  date > /tmp/size.log;
  echo "成功将创建时间添加到该文件中"
fi


#赋予脚本执行权限
[root@192 profile.d]# chmod +x jopl1.sh

脚本内容:

测试结果:

第一次执行脚本

第二次执行脚本

第二题

复制代码
[root@192 profile.d]# vim jopl2.sh
#!bin/bash
for i in {1..20}
do
  pw=`echo $[$RANDOM]|md5sum|cut -c 1-5`
  useradd user$i
  echo "user$i $pw" >> /user.txt
  echo "user$pw" |passwd --stdin user$i
done


[root@192 profile.d]# chmod +x jopl2.sh

脚本内容:

执行结果:

查看文件内容以验证(/user.txt已提前创建好)

第三题

复制代码
[root@192 profile.d]# vim jopl3.sh
#!bin/bash
read -p "请输入文件源路径:" file path
read -p "请输入保存的文件路径:"save_path

if [ ! -d $file_path ];
then
  echo "源路径非目录或不存在!"
  exit 2
fi

if [ ! -d $save_path ];
then
  echo "保存路径非目录或不存在!"
  exit 2
fi

files=$(find $file_path -type f -size +10M)
if [ -z "$files" ];
then
  echo "$file_path目录下没有文件大于10M"
else
  for file in $files;
  do
    mv "$file" "$save_path"
    if [ $? -eg 0 ];
    then
      echo "已将 $file 移动到 $save_path"
    else
      echo "移动 $file 失败"
  fi
done
fi


[root@192 profile.d]# chmod +x jopl3.sh

脚本内容:

测试结果:

相关推荐
路溪非溪39 分钟前
Linux下Shell脚本基础知识(二)
linux·运维·服务器
fruge1 小时前
飞牛OS部署Flare导航页:Docker Compose、YAML书签配置与cpolar公网访问
运维·docker·容器
嵌入式分享1 小时前
驱动之路#44:硬件 I2C 和软件 I2C 谁更坑?
linux·嵌入式硬件
NailiConveyor1 小时前
输送机皮带材质选型指南:PVC、PU、橡胶、模块化塑料各适用什么场景?
大数据·运维·自动化·制造·业界资讯·材质
不会就选b1 小时前
Linux之再次理解udp
linux·运维·udp
我命由我123451 小时前
自动化 / 智能装配的对象、内容、层级
运维·学习·职场和发展·自动化·求职招聘·职场发展·学习方法
guo_wen_qiang1 小时前
云服务器kibana环境搭建
linux·运维·服务器
海宇大数据2 小时前
零信任架构实战:基于海宇车辆出险记录核验构建自动化二手车收车评估网关
运维·人工智能·架构·自动化
流浪0012 小时前
Linux系统篇42——线程(七) pthread库管理线程的工作流,从创建到回收
linux·操作系统·线程·线程创建到销毁
Lsetea2 小时前
OpenSSL报path length constraint exceeded:CA层级与pathlen排查
运维·https·ssl证书·openssl·证书链