Linux 压缩分卷办法

首先,正常来说 linux 上是没有压缩分卷这个说法的,但好在 linux 上的文件大多是以文本的形式存在,所以可以利用 split 命令对压缩文件进行分割,需要的时候再合并。可以使用管道一次过,也可以分开使用。

一、使用管道符

tar -zcf - ROOT | split -b 10m - ROOT.tar.gz_

二、分开使用

tar -zcf ROOT.tar.gz ROOT;
split -b 10m ROOT.tar.gz ROOT.tar.gz_

三、解压缩

cat ROOT.tar.gz_* > ROOT.tar.gz;
tar -zxf ROOT.tar.gz;

四、实际场景

因百度网盘免费版最大文件上传限制为 4G,故需要将备份文件按 3G/文件 进行分卷。

#!/bin/bash
# Backup the data
set -e;

cd /data;

date=$(date +%Y-%m-%d_%H-%M-%S);
split_size=3G

for x in $(ls|grep -v Backup); do
    echo "Backing up $x";
    # 开始备份
    tar -cf "/data/Backup/$x-$date.tar" "$x";
    # 对备份文件进行分卷,如要恢复文件,需要先使用以下命令合并 cat xxx.tar_* > xxx.tar
    split -b ${split_size} -d "/data/Backup/$x-$date.tar" "/data/Backup/$x-$date.tar_"
    # 删除原备份文件
    rm -f "/data/Backup/$x-$date.tar"
    echo "Backup of $x completed";
    echo -e "\n";
done;

echo "Deleting old backups";
find /data/Backup -type f -name "*.tar*" -mtime +7 -exec rm -f {} \;
echo "Backup completed";

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息