一、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