Webは用いる人のリテラシーで決まる 文系出身ITエンジニアの技術・マーケティングBLOG
Twitter Facebook
TOP > BLOG >

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

LINUX(CentOS)

ローカルマシンからリモートサーバーにファイル転送をする場合、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などをリモートサーバーにインストールすればいいです。セキュリティは落ちるのでおすすめしませんが。

このブログを書いてる人
早川 朋孝

業界15年ウェブ運用が専門のITエンジニアです。サーバー保守やアクセス解析などフロントからバックエンドまで何でも対応します。データと科学的エビデンスを重視し、月140時間は読書します。ウェブ業界の裏側や読書で学んだこと、社会的なことなどをブログ記事にします。ネコ好きなタバコ嫌いで、明治学院フランス文学科卒という文系出身のエンジニアです。マリノスファン。

facebookへ
PAGE TOP