Linux tar将非常大的文件直接拆分为较小的文件
我需要备份一个大型服务器到FTP存储。我可以tar所有文件,我可以上传使用FTP,我可以分割成许多小文件tar文件 但问题是我不能一步完成这三个步骤。我可以直接对FTP进行tar,我可以使用split进行tar,但是不能使用FTP和split进行tar 操作系统是CentOS 6.2 文件大小超过800GLinux 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也是因为一旦你做
谢谢您可以制作一个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