さくらのVPSから特定ファイル/ディレクトリをダウンロードする

django

さくらの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


カテゴリー