【Linux】サーバ間の到達性がない場合のファイルコピー方法


1. 概要

サーバ間の到達性がなくscpftpコマンドが使えない場合に便利。

2. 手順

通常のファイルコピーの場合

(1) コピー元のLinuxサーバで下記コマンドを実行し、出力された文字列をコピーする。
 ※ファイルは複数でも可能。

# tar zcf - file1 | base64
H4sIAP9MDmIAA+3RMQrCQBAF0K09RY6waybxPBYRBCGQrPd3tbRQLIIE3mt+MVN8Zuq01rSx3IwR
r2zeM+dSUolj7iPG/tT2So5hSF3eutjTfa3npevSMs8fD/FtvlO1/f9yvU2HfxcBAAAAAAAAAADg
Jw9jPVaqACgAAA==

(2) コピー先のLinuxサーバで下記コマンドを実行し、(1)で出力された文字列をペーストする。

# cat | base64 -d | tar zxf -
H4sIAP9MDmIAA+3RMQrCQBAF0K09RY6waybxPBYRBCGQrPd3tbRQLIIE3mt+MVN8Zuq01rSx3IwR
r2zeM+dSUolj7iPG/tT2So5hSF3eutjTfa3npevSMs8fD/FtvlO1/f9yvU2HfxcBAAAAAAAAAADg
Jw9jPVaqACgAAA==

※「ctrl + d」で抜ける

zipファイルのコピーの場合

(1) コピー元のLinuxサーバで下記コマンドを実行し、出力された文字列をコピーする。

# base64 file.zip
UEsDBAoAAAAAAEpDUVQV07B3CQAAAAkAAAAEABwAdGVzdFVUCQAD/EwOYv9MDmJ1eAsAAQQAAAAA
BAAAAAB0ZXN0ZmlsZQpQSwECHgMKAAAAAABKQ1FUFdOwdwkAAAAJAAAABAAYAAAAAAABAAAApIEA
AAAAdGVzdFVUBQAD/EwOYnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAEoAAABHAAAAAAA=

(2) コピー先のLinuxサーバで下記コマンドを実行し、(1)で出力された文字列をペーストする。

# cat | base64 -d > file.zip
UEsDBAoAAAAAAEpDUVQV07B3CQAAAAkAAAAEABwAdGVzdFVUCQAD/EwOYv9MDmJ1eAsAAQQAAAAA
BAAAAAB0ZXN0ZmlsZQpQSwECHgMKAAAAAABKQ1FUFdOwdwkAAAAJAAAABAAYAAAAAAABAAAApIEA
AAAAdGVzdFVUBQAD/EwOYnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAEoAAABHAAAAAAA=

※「ctrl + d」で抜ける