SSH経由で大容量ファイル(8GB)を転送する

SSH経由で大容量ファイル(8GB)を転送する

SCPで試しましたが、「負のファイルサイズ」が表示されます。

>scp matlab.iso xxx@xxx:/matlab.iso
matlab.iso: Negative file size

また、SFTPを試してみましたが、2 GBのファイルが転送されるまでうまく機能して停止しました。

sftp> put matlab.iso
Uploading matlab.iso to /home/x/matlab.iso
matlab.iso                                           -298% 2021MB -16651.-8KB/s   00:5d
o_upload: offset < 0

何が間違っているのか知っていますか? SCPとSFTPは2GBを超えるファイルをサポートしていませんか?それでは、SSHを介して大きなファイルをどのように転送しますか?

ターゲットファイルシステムはext4です。 LinuxディストリビューションはCentOS 6.5です。ファイルシステムには現在(アクセス可能な)大容量ファイル(最大100 GB)があります。

ベストアンサー1

SCPとSFTPのファイルサイズの制限は不明ですが、分割を使用して問題を解決できます。

split -b 1G matlab.iso

これにより、defaultという名前の1GiBファイルが作成されますxaa, xab, xac, ...。その後、scpを使用してファイルを転送できます。

scp xa* xxx@xxx:

次に、リモートシステムでcatを使用して元のファイルを再作成します。

cat xa* > matlab.iso

もちろん、この回避策のコストは、分割操作とキャット操作にかかる時間だけでなく、ローカルシステムとリモートシステムの両方に必要な追加のディスク容量です。

おすすめ記事