先日、Xserverが403に凍結されたサイトを他のサーバーに移転して復活させる機会がありました。
通常だと、移転先から移転元のファイル一式をwgetで取得すれば済みます。
しかし、移転元が403の場合はwgetが使えない問題があります。ならFTPでという話になりますが、移転元のサイト一式が40GB程度あり、FTPでデータを移すと上りと下りで2回転送になるので、いつ終わるのかわかりません。
この記事では、ドメインにアクセスできないサイトから巨大なファイルを別サイトにコピーする方法をまとめています。この記事を読むことで、wgetが使えない時にscpを使ってファイルをコピーする方法を知ることができます。
ドメイン全体が403になるとwgetが使えない
wgetはサーバー間でファイルをやり取りする時にはFTPよりも高速にコピーできるので、とても便利です。
移転先のサーバーからドメインが見えないとwgetできない
wgetはhttpを使います。
wgetはサーバーが公開されていないと何もできないので、Xserverでサイト全体が403になっていると移転先からwgetをしても弾かれます。
移転元からwputというコマンドでコピー可能
wgetの反対で、wputというコマンドがありますが、レンタルサーバーには標準でインストールされていることはまずないので、使えません。
凍結されたサイトからデータを他のサーバーにコピーするには、wputに変わるコマンドが必要になります。
SSHからscpを使うとファイルのコピーができる
wputに変わるコマンドとして、scpがあります。
scpを使うと、移転元⇒移転先にコピーが簡単に行えます。
移転先でSSHを使えるようにしてあれば、必要な情報はそろっているはずです。
scp -P ポート番号 -i .ssh/ファイル名.pem コピーするファイル ユーザー名@ホスト名:コピー先のパス
例:
scp -P 8022 \
-i .ssh/key-2020-11-12-02-59.pem \
xxxx.com/xxx.com.tar \
a1234@domain.com:/home/xxx
sshのキーは、アクセス権限を400にしておかないとエラーになります。
まとめ
wgetが使える場合は、scpを使う機会はあまりないかもしれませんが、移転元が凍結されている場合など、もしもの時にはこの記事を思い出してください。