shell脚本练习(4)

news/2025/1/12 12:16:25 标签: chrome, 前端

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

[root@openEuler-1 script]# cat cat_file.sh
#!/bin/bash
#########################
#File name:cat_file.sh
#Email:obboda@163.com
#Created time:2025-01-10 18:44:28
#Description:
#########################

file_name="/tmp/size.log"

if [ -e "$file_name" ];then
        cat "$file_name"
else
        echo "$(date '+%Y-%m-%d %H:%M:%S')" > "$file_name"
fi


# 测试脚本:
[root@openEuler-1 script]# echo "hahah" > /tmp/size.log
[root@openEuler-1 script]# bash cat_file.sh
hahah
[root@openEuler-1 script]# rm -f /tmp/size.log
[root@openEuler-1 script]# bash cat_file.sh
[root@openEuler-1 script]# bash cat_file.sh
2025-01-11 22:11:25

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

[root@openEuler-1 script]# cat add_users.sh
#!/bin/bash
#########################
#File name:add_users.sh
#Email:obboda@163.com
#Created time:2025-01-10 19:11:07
#Description:
#########################

log_name="/server/script/userinfo.txt"
> "$log_name"

# 批量创建用户
for user in $(seq -f "user%02g" 1 20)
do
        if [ $(id $user &> /dev/null;echo "$?") -eq 0 ]
        then
                echo "$user用户已存在!!"
        else
                password=`echo $RANDOM | md5sum | cut -c 1-5`
                useradd $user
                echo $password | passwd --stdin $user &> /dev/null
                echo "$user用户创建成功!!"
                echo "user:$user,password:$password" >> "$log_name"
        fi
done


# 测试脚本:
[root@openEuler-1 script]# bash add_users.sh
user01用户创建成功!!
user02用户创建成功!!
user03用户创建成功!!
user04用户创建成功!!
user05用户创建成功!!
user06用户创建成功!!
user07用户创建成功!!
user08用户创建成功!!
user09用户创建成功!!
user10用户创建成功!!
user11用户创建成功!!
user12用户创建成功!!
user13用户创建成功!!
user14用户创建成功!!
user15用户创建成功!!
user16用户创建成功!!
user17用户创建成功!!
user18用户创建成功!!
user19用户创建成功!!
user20用户创建成功!!

# 再测试一遍脚本:
[root@openEuler-1 script]# bash add_users.sh
user01用户已存在!!
user02用户已存在!!
user03用户已存在!!
user04用户已存在!!
user05用户已存在!!
user06用户已存在!!
user07用户已存在!!
user08用户已存在!!
user09用户已存在!!
user10用户已存在!!
user11用户已存在!!
user12用户已存在!!
user13用户已存在!!
user14用户已存在!!
user15用户已存在!!
user16用户已存在!!
user17用户已存在!!
user18用户已存在!!
user19用户已存在!!
user20用户已存在!!

# 为了方便,又编写了一个批量删除用户的脚本
[root@openEuler-1 script]# cat del_users.sh
#!/bin/bash
#########################
#File name:add_users.sh
#Email:obboda@163.com
#Created time:2025-01-10 19:11:07
#Description:
#########################

# 批量删除用户
for user in $(seq -f "user%02g" 1 20)
do
        if [ $(! id $user &> /dev/null;echo "$?") -eq 0 ]
        then
                echo "$user用户不存在!!"
        else
                userdel -r $user
                echo "$user用户已删除!!"
        fi
done

[root@openEuler-1 script]# bash del_users.sh
user01用户已删除!!
user02用户已删除!!
user03用户已删除!!
user04用户已删除!!
user05用户已删除!!
user06用户已删除!!
user07用户已删除!!
user08用户已删除!!
user09用户已删除!!
user10用户已删除!!
user11用户已删除!!
user12用户已删除!!
user13用户已删除!!
user14用户已删除!!
user15用户已删除!!
user16用户已删除!!
user17用户已删除!!
user18用户已删除!!
user19用户已删除!!
user20用户已删除!!

三、编写个shel 脚本将/usr/local 日录下大于10M的文件转移到/tmp目录下

[root@openEuler-1 script]# cat mv_than10_file.sh
#!/bin/bash
#########################
#File name:mv_than10_file.sh
#Email:obboda@163.com
#Created time:2025-01-11 21:52:19
#Description:
#########################

source_dir="/usr/local"
target_dir="/tmp"

for file in $(find "$source_dir" -type f -size +10M)
do
        mv "$file" "$target_dir"
        echo "$file文件已经移动到$target_dir目录下"
done

echo "$source_dir目录下所有大于10M的文件已经移动到$target_dir目录下了"


# 测试脚本:
[root@openEuler-1 script]# ls -lh /usr/local/
total 155M
drwxr-xr-x. 2 root root 4.0K May 25  2024 bin
drwxr-xr-x. 2 root root 4.0K May 25  2024 etc
drwxr-xr-x. 2 root root 4.0K May 25  2024 games
drwxr-xr-x. 2 root root 4.0K May 25  2024 include
drwxr-xr-x. 2 root root 4.0K May 25  2024 lib
drwxr-xr-x. 3 root root 4.0K Jan 10 10:41 lib64
drwxr-xr-x. 2 root root 4.0K May 25  2024 libexec
drwxr-xr-x. 2 root root 4.0K May 25  2024 sbin
drwxr-xr-x. 5 root root 4.0K Jan 10 10:41 share
drwxr-xr-x. 2 root root 4.0K May 25  2024 src
-rw-r--r--  1 root root 155M Jan 11 22:07 than10M.txt

[root@openEuler-1 script]# bash mv_than10_file.sh
/usr/local/than10M.txt文件已经移动到/tmp目录下
/usr/local目录下所有大于10M的文件已经移动到/tmp目录下了

[root@openEuler-1 script]# ls /tmp
size.log
systemd-private-977c87ea7f6c4c6691b0e3f63dcb750c-chronyd.service-eTSCur
systemd-private-977c87ea7f6c4c6691b0e3f63dcb750c-systemd-logind.service-9K5AC1
than10M.txt


http://www.niftyadmin.cn/n/5820917.html

相关文章

Kotlin 协程基础二 —— 结构化并发(一)

结构化并发实际上就是父子协程关系的管理,管理父子协程之间生命周期的关联,包括正常的生命周期,以及取消和异常这些特殊情况下的生命周期。接下来我们会用两篇文章的篇幅来介绍结构化并发,第一篇介绍协程的取消,第二篇…

【2024年华为OD机试】(C卷,100分)- 单词重量 (Java JS PythonC/C++)

一、问题描述 问题描述 每个句子由多个单词组成,句子中的每个单词的长度都可能不一样。我们假设每个单词的长度 Ni 为该单词的重量,需要计算整个句子的平均重量 V。 输入描述 输入一个句子,句子中包含多个单词,单词之间由空格…

C++感受15-Hello STL 泛型启蒙

生鱼片和STL的关系,你听过吗?泛型编程和面向对象编程,它们打架吗?行为泛型和数据泛型,各自的目的是? 0 楔 俄罗斯生鱼片,号称俄罗斯版的中国烤鸭,闻名于世。其鱼肉,源于…

Wireshark抓包教程(2024最新版个人笔记)

改内容是个人的学习笔记 Wireshark抓包教程(2024最新版)_哔哩哔哩_bilibili 该课程笔记1-16 wireshark基础 什么是抓包工具:用来抓取数据包的一个软件 wireshark的功能:用来网络故障排查;用来学习网络技术 wireshark下…

vue3 react使用高德离线地图,最新解决内网情况首次不能加载离线地图2025年1月10日

下载离线资源 下载地址 https://download.csdn.net/download/u010843503/90234612 2、部署私有化瓦片资源 ngxin中配置如下 server{listen 18082;server_name localhost;location / {root D:/GisMap/_alllayers;#try_files $uri $uri/ /index.html;#index index.html;} }下载…

深入学习 Python 量化编程

深入学习 Python 量化编程 第一章:Python 基础与量化编程环境搭建 1.1 安装必要的库 首先,你需要安装一些在量化编程中常用的 Python 库。可以通过以下命令安装这些库: pip install numpy pandas matplotlib yfinance backtrader scikit-…

Redis 如何解决大 key 问题

前言 嗨👋,大家好,我是雪荷。做为一个后端开发,Redis 是我们经常接触到的一个非关系行数据库。其对我们系统开发和优化有着举足轻重的作用,但是随着业务和用户迅速增长,也会滋生许多的问题,而大…

Spring Boot教程之五十五:Spring Boot Kafka 消费者示例

Spring Boot Kafka 消费者示例 Spring Boot 是 Java 编程语言中最流行和使用最多的框架之一。它是一个基于微服务的框架,使用 Spring Boot 制作生产就绪的应用程序只需很少的时间。Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可…