−25%

Windows 年払い、10月31日まで。 プランを見る

EQVPS

VPS にファイルを転送する方法:scp、rsync、SFTP

scp でサーバーとファイルをやり取りし、大きなフォルダーは再開可能な rsync で同期、または SFTP クライアントを使用。個人用 SSH ポートの NAT でも使えます。

遅かれ早かれ、ファイルをサーバーに送る必要が出てきます。サイトのビルド成果物、データベースのダンプ、手元で書いた設定ファイルなどです。そのために FTP サーバーは要りません。SSH がすでに 3 つの優れた道具を提供してくれます。例はすべてドキュメント用のアドレスを使っているので、自分のサーバーのものに置き換えてください。

接続情報を把握する

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/

独自の 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 の中で実行してください。

関連

よくある質問

scp と rsync の違いは?

scp は毎回すべてをコピーします。rsync は両側を比較して変更分だけを送り、中断した転送を再開でき、フォルダーをミラーリングできます。ファイル 1 つなら scp で十分で、頻繁に同期するフォルダーには rsync を使いましょう。

標準以外の SSH ポートを使うには?

scp と sftp は大文字の -P(scp -P 20123)、ssh は小文字の -p を使い、rsync には rsync -e 'ssh -p 20123' のように渡します。EQVPS の NAT プランでは、個人用 SSH ポートがパネルに表示されます。

GUI クライアントは使えますか?

使えます。どの SFTP クライアント(FileZilla、WinSCP、Cyberduck)でも、SSH と同じホスト、ポート、ユーザー、SSH 鍵またはパスワードで接続できます。FTP ではなく SFTP プロトコルを選んでください。

Windows からも使えますか?

Windows 10 と 11 には OpenSSH が組み込まれているので、scp と sftp は PowerShell でここと同じように動きます。rsync は含まれていないため、WSL から使うか、WinSCP の同期機能を利用してください。

rsync の末尾のスラッシュにはどんな意味がありますか?

'rsync -a site/ dest/' は site の中身を dest にコピーします。'rsync -a site dest/' は dest/site を作ります。--delete と組み合わせてこれを間違えると別のフォルダーを空にしかねないので、まず --dry-run で実行してください。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。