• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

编写一个Shell, 打包指定目录下的log 文件

开发技术 开发技术 7天前 9次浏览

1) 压缩每一个文件

#!/bin/bash
SRC_DIR=./Log/
DES_DIR=./Backup/$(date +%Y%m%d) 

# 目标文件夹不存在,就创建 if [ ! -d "$DES_DIR" ]; then mkdir -p "$DES_DIR" fi OLDIFS="$IFS" #保存原始的分隔符 IFS=$'n' #设置换行为分隔符
# 循环处理每一个文件
for i in $(find "$SRC_DIR" -name "*.log" ) do tar -cvzf "$i.tgz" "$i" done
# 也可以用-exec 指定命令来处理每一个文件
#find "$SRC_DIR" -name "*.log" -exec tar -cvzf {}".tgz" {} ; &> /dev/null
# 移动压缩后的文件到目标文件夹 mv
$SRC_DIR*.tgz "$DES_DIR" ls -lh "$DES_DIR" echo "The scripts exec end, Files tar successfully!" #恢复原始的分割符 IFS="$OLDIFS"

2)所有文件压缩成一个文件

#!/bin/bash
SRC_DIR=./Log/
DES_DIR=./Backup
if [ ! -d "$DES_DIR" ]; then
    mkdir -p "$DES_DIR"
fi
 
# 一次处理全部的匹配的文件,find 命令也可以添加 -user USER 就能够找出由某个特定用户所拥有的文件,
# 只找当前目录下的,不包含子目录
find $SRC_DIR -maxdepth 1 -name "*.log" -print0 | xargs -0 tar -cvzf "$DES_DIR/$(date +%Y%m%d).tgz" &>/dev/null ls -lh "$DES_DIR" echo "The scripts exec end, Files tar successfully!"

 


程序员灯塔
转载请注明原文链接:编写一个Shell, 打包指定目录下的log 文件
喜欢 (0)