さくらのVPSから特定ファイル/ディレクトリをダウンロードする
さくらのVPS上のSQLiteファイルをダウンロードしたかったので、その時やったことを。
たまたま環境がさくらのVPSですが、他のサーバーでも使えます。
SCPコマンドでさくらVPS上のファイルをダウンロードする
色々、ネットを調べてみて「あ〜、アップロードと同じような方法で出来るんだな」と思っていましたが、ちょっとハマってしまったので備忘録を兼ねてメモ。
結論から先に言うと、以下のコードです。
$ scp -P ポート番号 サーバーのユーザー名@サーバーのIPアドレス(もしくはドメイン):/ディレクトリ/ダウンロードしたいファイル名 /ローカルでダウンロードした時の置き場所
文字にすると分かり辛いですね。
実際のコードを紹介すると、
$ scp -P 123456 user@000.00.000.000:/home/django/project/db.sqlite3 /Users/taro/Desktop
こんな感じです。Djangoアプリケーション内のdb.sqlite3ファイルをユーザーのデスクトップにダウンロードしています。
ポート番号を指定している人は、そのポート番号を指定します。
自分の中で勘違いしていて、このコマンドはVPSにログインした時のコマンドと思っていましたが、Macでターミナルを開いた時の(VPSにログインする前の)状態で実行します。
ディレクトリを丸ごとローカルにダウンロードする
次はディレクトリを丸ごとダウンロードする方法です。
上記コマンドはファイルをダウンロードするためのもので、ディレクトリを指定するとエラーが返ってきます。
scp: /home/django/hoge: not a regular file
手順としてはディクレトリをVPS上で圧縮→ダウンロードという手順になります。
まずはターミナルからさくらVPSにログインします。
sudo ssh -p 123456 username@xxx.xx.xxx.xxx←IPアドレス
ディレクトリをzip化するコマンドは以下の通り。目的のディレクトリがある場所で実行しています。
zip -r 生成するzipファイル名 zip化したいディレクトリ名
今回はDjangoの「project」というディレクトリをそのままzip化したいので以下のコードになります。
zip -r project.zip project
成功しているかlsコマンドで確認してみます。
ls project project.zip
OKですね。ここまでくれば先ほどのコードでローカルにダウンロードできます。(リモートからログアウトした状態で実行)
$ scp -P 123456 user@000.00.000.000:/home/django/project.zip /Users/taro/Desktop