質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

4回答

6744閲覧

【sshでサーバに接続した後に】ファイルをzip化して、ローカルに落とす方法を教えて下さい

yuukikun

総合スコア17

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

1グッド

0クリップ

投稿2016/01/26 12:30

編集2022/01/12 10:55

sshでエックスサーバーに接続しているときに、ファイルをzip化して、ローカルに落としたいと考えています。
目的は、既存のwordpressサイトをローカル環境で再現することです。cyeberduckなどでは重すぎてwordpressをまるごとローカルに転送できないため、sshでやろうと思っていますが、ssh接続できても、そこからzip化してローカルに落とすコマンドが分かりません。また、zip化中にサーバーに影響が出ないかも心配です(既存のwordrpessサイトが動かなくなるなど)。

EKD👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ちょっとご質問への直接の答えじゃありませんが、私もレンタルサーバーで WordPress のサイトを運営しており、もしかしたら参考になるかもしれないなあ、と思ったので、ご紹介してみます。
WordPress を再現する(あるいはバックアップする、というのもほぼ同義になると思いますが)には、次の三つのデータをローカルに持ってこなければならないわけです。
0. ソース (WordPress 本体やプラグイン、テーマなどの HTML, js, css, image など)
0. mysql 内のデータ
0. アップロードしたデータ
それぞれ性質の違うデータなので、別々に処理するといいかな、と思います。毎回全部持ってくるとなると、いくら圧縮したとしてもかなりのサイズになりますし。

まず、1 の「ソース」については、私は git を使っています。ざっくり言えば、開発環境で開発して適宜 git push し、大丈夫となったら本番環境で git pull する、という運用です。リポジトリはローカルと本番環境のあるレンタルサーバにあるといいのではないかと思います。
git なら素人が下手に考えるよりよっぽど通信量を少なくする仕組みができているんだろうな、と期待しています。

2 の「mysql のデータ」は、私は mysqldump で Dropbox の領域に落としておいて、そのうち同期される運用にしていますが、通信量を減らすには、前回持ってきた分との差分を取り、その差分を圧縮して持ってくるのがいいのかもしれません。

3 の「アップロードしたデータ」については、私はアップロードしない、という運用にしているので、ローカルに持ってくる必要がありません。アップロードするファイルでいちばん多いのはたいていの場合は画像ファイルかと思いますが、私は画像ファイルは無料の WEB アルバムに置いておき、WordPress からはそれを参照するようにしています。

次の記事は、ローカルではなく、レンタルサーバ上に本番環境と開発環境を動かす運用の話を書いたものですが、現在はローカルの LAN 内に開発環境を作る準備をしていて、この仕組みを拡張している最中です。
グローバルIPアドレスが一つしかないサーバで本番用、開発用二つの WordPress を動かすために怠惰な私がやっている運用方法 : Qiita

投稿2016/01/28 00:35

unau

総合スコア2468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

必要なのは大きく分けて2種類あります。
1.HTMLやPHP、画像などの、いわゆるファイルと呼ばれるもの
2.データベース内のデータ

【1.HTMLやPHP、画像などの、いわゆるファイルと呼ばれるもの】
ご自身のサイトのドキュメントルートはお分かりでしょうか。
public_htmlやwwwなどといった名前がついていると思います。
エックスサーバーではpublic_htmlでしょうか。
それを丸ごと圧縮するのが簡単と思います。
public_htmlが見えているディレクトリで

zip -r public_html.zip public_html

とコマンドを打ってください。
public_html.zipファイルが出来ます。
それをcyeberduckでダウンロード(必ずバイナリモードで)すれば良いです。
FTPする際の大きなボトルネックはファイル数が非常に多い場合です。
圧縮された1ファイルの方が圧倒的に早くダウンロードできます。

ローカルでの解凍にも時間がかかる可能性がありますが、解凍されましたら、ローカルのWebサーバの領域に移動させてください。
wp-config.phpのデータベースの接続先は書き換えてください。

【2.データベース内のデータ】
XSERVERですと、phpMyAdminでデータベースにアクセスする機能がついているのではないでしょうか。
そこでWordpressのデータが入っているデータベースを選んでエクスポートし、ファイルをダウンロードしてください。
データベース内のテーブルやデータを構築するSQL文がダウンロードできますので、ローカル環境のデータベースに接続して実行してください。
私はローカルにはコピーしたことはないのですが、もしかしたらデータベースのサイトのURLも書き換える必要があるかもしれません。

投稿2016/05/15 10:35

munyagu

総合スコア479

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コンピュータの素人向けの話であれば、ここまで話すのは冗長ですが、
いちおうここは技術者向けのサイトのはずなので用語やツールに関して整理させてください。

Cyberduck と SSH の関係

Cyberduck は FTP というプロトコルでファイル転送を行うためのツール(クライアント)です。
そして、SSH というのは FTPのような特定用途向けのプロトコルの下位にあって、
通信のセキュリティを確保するためのプロトコルです。
(そして、 sshコマンドはこのプロトコルを使ってリモート接続を行うためのコマンドです。)
ですので、FTP をSSH を通して行う SFTP というプロトコルが存在し、
Cyberduck も SFTP に対応しています。
つまり、Cyberduck から SSH は使えます。

SSH と通信速度

SSH は通信速度のために選択するものではなく、セキュリティのために使うものです。
もしも、誰に傍受されてもイタズラされても構わない、そんなことよりスピードだ、
とお考えであれば、SSH を使うメリットはありません。
(ただ一般常識として、レンタルサーバ等と自宅PCとの通信をインターネット経由で行う場合は SSH を使うことをお勧めします。
それは通信速度のためではなく、通信速度を犠牲にしてもその程度のセキュリティリスク回避策はとるべきだという考えからです。
あなたのサーバーが他人に乗っ取られて犯罪に使われないように、といったような話です。)

そして、通信速度に関しては、SSHを使用した場合、
デフォルト設定の Cyberduck(おそらく素の FTPで転送を行う)
と比べて、たいていの場合遅くなるはずです(暗号化複合化などのよけいな手間がかかるため)。

どのようにダウンロードすべきか

デフォルト設定の Cyberduck(おそらく素の FTPで転送を行う)での転送時間が問題になるようなサイズの場合、
サーバーの CPU パワーにもよりますが、圧縮に相当の時間がかかると思います。

したがって、サーバ側で完結するようなコマンドを夜に実行して朝や次の日帰宅してから
ダウンロードするといったやり方が現実的だと思います。

自分であれば、teratermなどで SSH ログインして

$ ((tar cvf - 対象フォルダパス | gzip > 作成したいファイル名.taz ) >& log )&

とやって、次の日などに再度ログインして、

$ cat log

でエラー等がでていなければ、使い慣れたダウンロードツール
(Cyberduck でも構わないと思いますよ。私なら SFTP に設定して使いますが。)
でダウンロード。

といった手順でしょうか、tar や gzip を使っているのは使い慣れているからにすぎません、
アーカイブツール、圧縮フォーマットはあなたが手慣れた物を使えばいいと思います。
ただ、可逆圧縮の場合、意味のある文章データなどのサイズが半分以下になることはまれなので、
ダウンロード時間は劇的には短くはならないと思います。
それでも、一気に大量のファイルをダウンロードするなら、
一つのファイルにまとめた方が、いろいろと効率はいいと思います。

投稿2016/02/04 13:00

編集2016/02/04 13:16
kozuchi

総合スコア1193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな感じでしょうか?環境はunix系OSを想定しています。違う場合は読み替えてください。。。

A% ssh username@B 'zip - FILENAME' > ./FILENAME.zip

A...ファイルをZIP保存するサーバのプロンプト
B...ファイルが保存されているサーバ

しかし複数ファイルを取ってきて展開するのでしたら、

A% ssh username@B '(cd /dir/; tar cpf - *)|bzip2 -9 -' | bzip2 -dc - | tar xpf -

の方が、良いかもしれません。文字長が長い場合、文字コードが様々や階層が深いなどの場合は、tarの方が向いています。

tar xpf - を tar tvf - にすると、事前に展開されるファイルが見れます。 t はテストですので実際には展開されません。xpf を xpvf にすると展開中にリストが見えますが遅くなります。

投稿2016/01/26 13:43

編集2016/01/26 16:16
Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問