有这样一个需求,需要把 /log 目录下的所有日志 都压缩在当前文件,然后还需要按照 一定的要求给压缩文件命名;
然后再把压缩文件 移动到指定目录。
这是shell脚本:
#!/bin/bash # 获取当前时间,并格式化为 YYYYMMDD-HHMMSS timestamp=$(date +"%Y%m%d-%H%M%S") # 定义日志目录 log_dir="/log" # 定义压缩文件最终目录 tar_file_dir="/mnt/heliang_mount_point" # 获取脚本所在目录 script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # 定义压缩文件的名称 tar_file_name="xxxxx-log-${timestamp}.tar.gz" # 完整的压缩文件路径 tar_file_path="${script_dir}/${tar_file_name}" # 打包并压缩日志目录 echo "正在打包 ${log_dir} 到 ${tar_file_path}..." tar -czf "${tar_file_path}" "${log_dir}" # 检查是否成功创建压缩文件 if [ -f "${tar_file_path}" ]; then echo "压缩文件 ${tar_file_name} 已成功创建在 ${script_dir}" else echo "创建压缩文件失败,请检查目录权限或磁盘空间" fi echo 移动压缩文件到 我们挂在的磁盘目录的文件夹下面 mv ${tar_file_path} ${tar_file_dir} echo 移动完成
标签:log,tar,压缩文件,文件夹,dir,file,path,日志,打包 From: https://www.cnblogs.com/music-liang/p/18408758