Linux管理脚本
单目录智能压缩解压
1 | wget -qO- https://haies.cn/assets/tar_single.sh |
使用说明
该脚本是一个功能完整的大容量单目录分卷压缩、解压工具,具有以下特点:
- 支持三种压缩算法:gzip、zstd(推荐)、xz
- 支持三种操作模式:创建压缩包、解压、验证完整性
- 自动检测压缩格式,无需手动指定算法
- 提供分卷校验和验证,确保数据完整性
- 彩色日志输出,包含时间戳,便于跟踪和审计
基本用法
命令格式:
1 | ./tar_single.sh -[操作方式][压缩算法] [操作对象] |
参数说明:
- 操作方式:
c:创建压缩包x:解压压缩包(自动检测格式)t:测试压缩包完整性(自动检测格式)
- 压缩算法(仅创建时需要):
z:gzip(默认)s:zstd(推荐,速度快)o:xz(压缩比高)
使用示例
1 | # 创建压缩包(使用不同算法) |
关键特性:
- 解压和测试时自动识别压缩格式,无需指定算法参数
- 提供详细的带时间戳的日志输出,便于问题排查
- 默认使用并行压缩工具,处理大文件时效率更高
存档批量压缩
1 | wget -qO- https://haies.cn/assets/tar_batch.sh |
使用说明
智能压缩指定目录内文件数量较多的文件夹,自动根据目录深度和文件数量应用不同压缩规则,并排除文档、图片、视频、音频等特定文件类型,这个脚本特别适合处理日志目录、临时文件目录、上传目录等包含大量小文件的场景,能有效减少inode使用量,提升文件系统性能。
基本用法
1 | ./tar_batch.sh [目标目录] |
- 不指定目录时,默认处理脚本所在目录
- 处理深度3-5的目录,按从浅到深顺序
使用示例
- 压缩当前目录 :
./tar_batch.sh - 压缩指定目录:
./tar_batch.sh /path/to/your/data
压缩规则
- 深度 < 4:不含排除文件类型,文件数50-100 → 压缩
- 深度 = 4:不含排除文件类型,文件数 > 50 → 压缩
- 深度 > 4:无条件压缩
- 搜索深度:仅处理深度3-5的目录
排除的文件类型
- 文档:.txt .pdf .doc .docx .xls .xlsx .ppt .pptx .odt .md .rtf
- 图片:.jpg .jpeg .png .gif .bmp .tiff .svg .webp
- 视频:.mp4 .avi .mov .mkv .flv .wmv .m4v .webm
- 音频:.mp3 .wav .flac .aac .ogg .m4a .wma
执行后,符合条件的目录会被压缩,并在同级位置生成:
- 单卷包:
目录名.tar.gz - 多卷包:
目录名_archive/文件夹(内含分卷文件)
脚本执行期间,终端会单行显示当前正在压缩的文件名。
脚本会在目标目录生成带时间戳的日志文件。
存档批量压缩
1 | wget -qO- https://haies.cn/assets/svn_server_tool.sh |
使用说明
本脚本主要用于在服务器端直接查看和统计SVN代码仓库的信息,无需通过客户端连接。适用于系统管理员、运维人员或开发人员直接访问SVN服务器文件系统,快速获取代码仓库的相关信息。包括以下功能:
目录内容查看
- 查看SVN仓库的目录结构
- 仅显示指定目录的第一层内容(非递归)
- 区分显示目录和文件
代码修改历史查询
- 查看指定文件或目录的所有修改记录
- 显示每次修改的版本号、作者、时间、提交信息
- 查看具体的文件变更操作(添加、删除、修改等)
代码提交统计分析
- 统计指定文件或目录的提交情况
- 按作者统计提交次数和百分比
- 显示最早和最晚提交时间
- 可视化展示提交分布情况
基本用法
命令格式
1 | ./svn_server_tool.sh <功能> <仓库路径> [目录/文件路径] |
参数说明
功能参数(第一个参数):
ls:列出目录内容log:查看修改历史stat:统计提交信息
仓库路径(第二个参数):
- SVN仓库在服务器上的物理路径
- 示例:
/var/svn/repos/myproject
目标路径(第三个参数):
- 对于
ls功能:可选,指定要查看的SVN仓库内目录 - 对于
log和stat功能:必填,指定要分析的目标路径(SVN仓库内的相对路径)
- 对于
使用示例
1 | # 查看仓库根目录 |