Linux tar将非常大的文件直接拆分为较小的文件

Linux tar将非常大的文件直接拆分为较小的文件,linux,ftp,backup,tar,large-data,Linux,Ftp,Backup,Tar,Large Data,我需要备份一个大型服务器到FTP存储。我可以tar所有文件,我可以上传使用FTP,我可以分割成许多小文件tar文件 但问题是我不能一步完成这三个步骤。我可以直接对FTP进行tar,我可以使用split进行tar,但是不能使用FTP和split进行tar 操作系统是CentOS 6.2 文件大小超过800G 谢谢您可以制作一个shell脚本并使用 tar zcf - /usr/folder | split -b 30720m - /usr/archive.tgz 然后上传到FTP也是因为一旦你做

我需要备份一个大型服务器到FTP存储。我可以tar所有文件,我可以上传使用FTP,我可以分割成许多小文件tar文件

但问题是我不能一步完成这三个步骤。我可以直接对FTP进行tar,我可以使用split进行tar,但是不能使用FTP和split进行tar

操作系统是CentOS 6.2 文件大小超过800G


谢谢

您可以制作一个shell脚本并使用

tar zcf - /usr/folder | split -b 30720m - /usr/archive.tgz

然后上传到FTP也是因为一旦你做了
tar
并把它放到FTP上,你怎么能分割呢。

你可以制作一个shell脚本并使用

tar zcf - /usr/folder | split -b 30720m - /usr/archive.tgz

然后上传到FTP,这也是因为一旦您执行了
tar
并将其放到FTP上,那么您如何进行拆分。

要使用一个命令行对目录进行tar、拆分和FTP,您需要以下内容:

split命令只写入标准输出,因此您不能将文件传递给另一个命令(如ftp)来处理它,为此,您需要修补split,以便可以使用--filter选项“动态”将输出文件传递给ftp,而无需通过设置$file环境变量和输出文件保存到硬盘(文件名应为x00、x01、x02…)

1) 以下是拆分补丁: 修补split命令后,您将在man中看到您的split命令中提供了--filter选项

2) 安装ncftp客户端,它是一个好的ftp客户端,允许您连接到ftp并将文件放入一行命令中,而无需像普通ftp客户端一样等待ftp响应。ncftp有助于与脚本等集成

下面的命令将使用tar压缩/home目录,将其拆分为100MB的小文件,并通过FTP传输每个文件

tar cvz -i /home | split -d -b 100m  --filter 'ncftpput -r 10 -F -c -u ftpUsername -p ftpPassword ftpHost $FILE'
请注意,我们使用了ncftpput,它也可以通过一个命令将$FILE传递给ftp。 其他ftp选项: -r 10:允许您在与ftp断开连接后尝试重新连接10次。 -F:使用被动模式。 -c:从标准输入获取输入

要合并分割的文件(x00、x01、x02、x03…)以提取文件,请使用以下命令

cat x* > originalFile.tar

要使用一个命令行对目录进行tar、split和ftp,您需要以下命令:

split命令只写入标准输出,因此您不能将文件传递给另一个命令(如ftp)来处理它,为此,您需要修补split,以便可以使用--filter选项“动态”将输出文件传递给ftp,而无需通过设置$file环境变量和输出文件保存到硬盘(文件名应为x00、x01、x02…)

1) 以下是拆分补丁: 修补split命令后,您将在man中看到您的split命令中提供了--filter选项

2) 安装ncftp客户端,它是一个好的ftp客户端,允许您连接到ftp并将文件放入一行命令中,而无需像普通ftp客户端一样等待ftp响应。ncftp有助于与脚本等集成

下面的命令将使用tar压缩/home目录,将其拆分为100MB的小文件,并通过FTP传输每个文件

tar cvz -i /home | split -d -b 100m  --filter 'ncftpput -r 10 -F -c -u ftpUsername -p ftpPassword ftpHost $FILE'
请注意,我们使用了ncftpput,它也可以通过一个命令将$FILE传递给ftp。 其他ftp选项: -r 10:允许您在与ftp断开连接后尝试重新连接10次。 -F:使用被动模式。 -c:从标准输入获取输入

要合并分割的文件(x00、x01、x02、x03…)以提取文件,请使用以下命令

cat x* > originalFile.tar

为什么必须一步到位?有没有理由不能编写shell脚本来完成这三个步骤?如果磁盘空间存在问题,那么使用
rsync
而不是tar和FTP-ing如何?步骤数不是问题,我无法将压缩文件保存在同一台服务器中。我需要进行定时备份以压缩整个系统(每周),并将其保存在FTP服务器中,每天进行增量备份。我当然需要剧本,但怎么写你能用SSH连接到远程服务器吗?这里是。不,它只是ftp或sftp。为什么必须在一个步骤中完成?有没有理由不能编写shell脚本来完成这三个步骤?如果磁盘空间存在问题,那么使用
rsync
而不是tar和FTP-ing如何?步骤数不是问题,我无法将压缩文件保存在同一台服务器中。我需要进行定时备份以压缩整个系统(每周),并将其保存在FTP服务器中,每天进行增量备份。我当然需要剧本,但怎么写你能用SSH连接到远程服务器吗?这里是。不,它只是ftp或sftp。谢谢你的回复。我无法将压缩文件保存在同一台服务器上,没有可用空间。因此,这意味着你的空间不足,因此你必须确保有足够的空间保存压缩文件,或者附加一个可用驱动器或分区来保存文件。对不起,没有更大的空间,我们有大约1TB的文件:D这不是一件容易的任务:D谢谢你的回复。我无法将压缩文件保存在同一台服务器上,没有可用空间。这意味着你的空间不足,因此你必须确保有足够的空间保存压缩文件,或者附加一个可用驱动器或分区来保存文件。对不起,但是没有更大的空间,我们有大约1TB的文件:D这不是一个容易的任务:D