实现对/var/log下大于10K的文件压缩保存到/tmp/backuplog/目录下
时间: 2023-08-28 17:06:17 浏览: 201
以下是一个可能的实现方法:
```
#!/bin/bash
LOGDIR=/var/log
BACKUPDIR=/tmp/backuplog
# 创建备份目录
mkdir -p $BACKUPDIR
# 查找所有大于10K的文件并进行压缩备份
find $LOGDIR -type f -size +10k -exec gzip {} -c > $BACKUPDIR/$(date +%Y%m%d%H%M%S).tar.gz \;
# 删除原始文件
find $LOGDIR -type f -size +10k -delete
```
解释:
- `LOGDIR` 是要搜索的日志目录的路径。
- `BACKUPDIR` 是备份目录的路径,在执行脚本前需要事先创建好。
- `mkdir -p $BACKUPDIR` 创建备份目录,`-p` 参数表示如果目录已经存在则不报错。
- `find $LOGDIR -type f -size +10k` 查找所有大于10K的文件,`-type f` 表示只搜索文件类型,`-size +10k` 表示文件大小大于10K。
- `-exec gzip {} -c > $BACKUPDIR/$(date +%Y%m%d%H%M%S).tar.gz \;` 对每个找到的文件执行 `gzip` 压缩,并将压缩后的数据输出到备份目录下的以当前时间命名的压缩文件中。
- `find $LOGDIR -type f -size +10k -delete` 删除原始文件。
注意事项:
- 请在测试环境中测试该脚本,并确保备份目录已经创建。
- 该脚本可能会删除原始日志文件,使用时请谨慎。
- 该脚本使用 `gzip` 压缩算法,可以根据需要修改成其他算法。
阅读全文