shell常用脚本集合

2023-05-28 09:52:40 浏览数 (1)

# 1.多文件夹下的日志清理

要求

  1. 编写shell脚本
  2. 查询路径下的文件夹名称
  3. 进入查询的文件夹,删除3天前的日志
  4. 过滤掉本身查询的路径
代码语言:javascript复制
#!/bin/bash

# 设置要查询的路径
path="/path/to/directory"

# 获取当前日期三天前的日期
three_days_ago=$(date -d "3 days ago"  %Y%m%d)

# 查询路径下的文件夹名称
folders=$(find "$path" -maxdepth 1 -type d)

# 循环处理每个文件夹
for folder in $folders; do
  # 过滤掉路径中的斜杠,只获取文件夹名称
  folder_name=$(basename "$folder")

  # 判断文件夹是否为查询的路径本身
  if [[ "$folder" != "$path" ]]; then
    # 进入文件夹
    cd "$folder"

    # 删除三天前的日志文件
    find . -maxdepth 1 -name "*.log" -type f -mtime  3 -delete

    # 返回上一级目录
    cd ..
  fi
done

# 2.svn备份脚本

代码语言:javascript复制
#!/bin/bash

# SVN仓库路径
svn_repo_path="/data/svn/xxx"

# 备份保存目录
backup_dir="/data/svn-backup"

# 备份文件名
backup_file="svn_backup_$(date  '%Y%m%d').dump"

# 创建备份保存目录(如果不存在)
mkdir -p "$backup_dir"

# 进入SVN仓库目录
cd "$svn_repo_path" || exit

# 创建仓库备份
svnadmin dump . > "$backup_dir/$backup_file"

# 输出备份完成消息
echo "SVN仓库备份已完成,备份文件保存在:$backup_dir/$backup_file"

#备份到nas
cp -rf $backup_dir/$backup_file /share/svn_backup

#清理
find /share/svn_backup -mtime  60 -exec rm -rf {} ; 

0 人点赞