Webは用いる人のリテラシーで決まる ウェブ運用と開発現場を経験したエンジニアのTIPS
TOP > BLOG > IT記事

SCPコマンドでFTPを使わずサーバーにファイル転送すれば作業効率アップ

早川朋孝 早川朋孝
EC専門のSE

ローカルマシンからリモートサーバーにファイル転送をする場合、WinSCPなどが使えればそれはそれでいいのですが、GUIだとディレクトリを誤って移動させてしまうリスクがあったり、権限によって特定の捜査しかできなかったりします。

こういう理由のため、エンジニアはファイル転送には通常はpscpかscpコマンドを使います。WindowsでもMacでも使えてとっても簡単です。いくつかパターンがあるので整理します。

Windowsの場合はpscp

  • ローカルのファイルをリモートに転送する
  • リモートのファイルをローカルにダウンロードする
  • ローカルのファイルをリモートに転送する(秘密鍵あり)
  • リモートのファイルをローカルにダウンロードする(秘密鍵あり)

Macの場合はscp

  • ローカルのファイルをリモートに転送する
  • リモートのファイルをローカルにダウンロードする
  • ローカルのファイルをリモートに転送する(秘密鍵あり)
  • リモートのファイルをローカルにダウンロードする(秘密鍵あり)

注意事項

重いファイルのダウンロードはサーバーに負荷がかかります。また動作が鈍いサーバーの場合、ダウンロードには時間がかかります。

Windows pscp

Windowsの場合はコマンドプロンプトで入力します。

ローカルのファイルをリモートに転送する

pscp.exe C:\Users\USER\Desktop\filename admin@xxx.xxx.xxx.xxx:.

この場合、ローカルのデスクトップにあるfilenameをリモートのadminユーザーで/home/admin直下にファイルを転送するという意味です。このコマンドの構造を一般化して書くと以下の通りです。

pscp ローカルファイル ユーザー名@IPアドレス:サーバーのディレクトリ

リモートのファイルをローカルにダウンロードする

pscp admin@xxx.xxx.xxx.xxx:/home/admin/filename C:\Users\USER\Desktop

この場合、/home/admin配下にあるfilenameをローカルのデスクトップにダウンロードします。

ローカルのファイルをリモートに転送する(秘密鍵あり)

pscp -i C:\Users\USER\Desktop\hoge.ppk C:\Users\USER\Desktop\filename admin@xxx.xxx.xxx.xxx:.

秘密鍵が必要な場合は、ローカルの所定の場所に秘密鍵を設置して、 -i をオプションにして指定し、あとはファイルの転送です。簡単ですね。

リモートのファイルをローカルにダウンロードする(秘密鍵あり)

pscp -i C:\Users\USER\Desktop\hoge.ppk admin@xxx.xxx.xxx.xxx:/home/admin/filename C:\Users\USER\Desktop\

Mac scp

Macの場合はターミナルからコマンドを実行しましょう。

ローカルのファイルをリモートに転送する

scp /Users/user/Desktop/filename admin@xxx.xxx.xxx.xxx:/home/admin

リモートのファイルをローカルにダウンロードする

scp admin@xxx.xxx.xxx.xxx:/home/admin/filename /Users/user/Desktop/

ローカルのファイルをリモートに転送する(秘密鍵あり)

scp -i /Users/user/.ssh/admin/id_rsa /Users/user/Desktop/filename admin@xxx.xxx.xxx.xxx:/home/admin

リモートのファイルをローカルにダウンロードする(秘密鍵あり)

scp -i /Users/user/.ssh/admin/id_rsa kusanagi@xxx.xxx.xx.xxx:/home/admin/filename Users/user/Downloads/

おまけ

ちなみにポートを指定するときは、以下のように -Pオプションをつけます。この例はローカルに構築したvagrantに接続する場合です。

scp -P 2222 /Users/user/Downloads/filename vagrant@127.0.0.1:/srv/www/wordpress-one/public_html/

パターンが分かれば簡単ですね。達人になるとAtokやgoogoleに辞書登録して、よく使うサーバーに接続したりします。

どうしてもGUIで転送したい人は、FTPなどをリモートサーバーにインストールすればいいです。セキュリティは落ちるのでおすすめしませんが。

×
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP