gpt4 book ai didi

linux - tar 非常大的文件到 FTP 直接拆分成较小的文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:15 24 4
gpt4 key购买 nike

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

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

操作系统为CentOS 6.2文件大小大于800G

谢谢

最佳答案

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

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

1) 这是拆分补丁:http://lists.gnu.org/archive/html/coreutils/2011-01/txt3j8asgk8WH.txt修补 split 命令后,您会在 man 中看到 --filter 选项在您的 split 命令中可用。

2) 安装 ncftp ftp 客户端,这是一个很好的 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

关于linux - tar 非常大的文件到 FTP 直接拆分成较小的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18981805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com