遅かれ早かれ、ファイルをサーバーに送る必要が出てきます。サイトのビルド成果物、データベースのダンプ、手元で書いた設定ファイルなどです。そのために FTP サーバーは要りません。SSH がすでに 3 つの優れた道具を提供してくれます。例はすべてドキュメント用のアドレスを使っているので、自分のサーバーのものに置き換えてください。
接続情報を把握する
- 専用 IP プラン:
root@203.0.113.10、ポート 22。 - NAT プラン: ホストと個人用 SSH ポートがパネルに表示されます(例:ポート 20123)。以下のすべてのコマンドでそのポートが必要です。NAT アクセスの仕組みを参照してください。
scp:ファイルやフォルダーをコピーする
ファイルをアップロードします。
scp backup.sql root@203.0.113.10:/root/
ファイルをダウンロードします。
scp root@203.0.113.10:/var/log/nginx/access.log .
フォルダーごとコピーします。
scp -r ./site root@203.0.113.10:/var/www/
NAT プランでは、大文字の -P でポートを指定します。
scp -P 20123 backup.sql root@your-nat-host:/root/
rsync:フォルダーに最適な道具
rsync は差分だけを送り、進捗を表示し、接続が切れても続きから再開します。両側にインストールされている必要があります(apt install -y rsync)。
rsync -avzP ./site/ root@203.0.113.10:/var/www/site/
-aは権限とタイムスタンプを保持し、-vはファイルを一覧表示し、-zは圧縮し、-Pは進捗を表示して再開を可能にします。
独自の SSH ポートを使う場合は次のとおりです。
rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/
転送先を完全なミラーにする(ローカルで消したファイルも削除する)には --delete を追加しますが、先に何が起こるか確認してください。
rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/
末尾のスラッシュに注意。 ./site/ は site の中身をコピーし、./site はフォルダーそのものを転送先の中にコピーします。--delete を使うと、この違いがどのディレクトリを空にするかを決めます。
SFTP:対話型または GUI
コマンドラインのクライアントは小さなファイルマネージャーのように動きます。
sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit
GUI のほうが好みですか?FileZilla、WinSCP、Cyberduck も同じ情報で接続します。プロトコルは SFTP、ホスト、ポート 22(または NAT のポート)、ユーザー root、そして SSH 鍵かパスワードです。
SSH 鍵でさらに速く
これらの道具はすべて SSH を使うので、SSH 鍵があればパスワードの入力がなくなり、cron で転送を自動化できます。まだなら SSH 鍵認証を設定しましょう。新しい EQVPS サーバーは、鍵に切り替えるまでパネルの root パスワードを受け付けますが、初日に切り替えることをおすすめします。
大きな転送
数十ギガバイトなら、合理的な選択は rsync だけです。接続が切れても同じコマンドを再実行すれば、止まったところから続きます。ノート PC を閉じても止まらないよう、送信側のマシンで tmux か screen の中で実行してください。
コメント
まだコメントはありません。最初になりましょう。