SSHコマンドラインでWebサイトをバックアップする方法【データベースとファイルの保存・復元まで完全解説】
Webサイトやブログのバックアップというと、さまざまなプラグインを導入したり、ホスティング業者の有料プランに加入したりと、コストも手間もかかる作業だと考えられがちです。しかし、実はそんなに大げさに考える必要はありません。
WebサイトにSSHアクセスできる環境があれば、高度なタスクをリモートで簡単に実行できます。この記事では、コマンドラインセッションでSSHを使ってWebサイトをバックアップする方法を、初心者にもわかりやすく解説します。
SSHコマンドラインとは?
SSH(Secure Shell)を使うと、Webサーバーと直接対話できるようになります。見た目の美しいインターフェースやGUIはなく、ただ強力なコマンドラインが立ち上がるだけです。最初はとっつきにくく感じるかもしれませんが、その圧倒的なパワー、速度、自動化能力はまさに救世主であり、サイト移行のプロセスも驚くほど簡単になります。
残念ながら、多くの共有ホスティングではデフォルトでSSHアクセスが許可されていません。しかし状況は変わりつつあり、Linuxホスティングを利用していればSSHアクセスが使えるはずです。GoDaddyでサイトをホストしている場合、SSHはデフォルトで有効になっています。無効になっている場合は、GoDaddyのcPanelインターフェースから有効化できます。他のホスティング業者でも同様の機能が提供されていることが多いです。
一方、VPSや専用サーバーのホスティングでは、基本的にSSHが利用可能です。これらの違いがよくわからない方は、Webホスティングサービスの比較ガイドを参考にしてみてください。
パソコンでSSHを使う方法
3つの主要デスクトップOSはすべて、SSHに対応したコマンドラインインターフェースを備えています。
- Windows: Windows PowerShellを使用(PuTTYも利用可能)
- macOS: ターミナルを使用
- Linux: ターミナルを使用
インターフェースを開いてsshコマンドを入力すれば、関連ツールを使い始められます。
コマンドライン環境を使ったことがない方には、少し難しく感じる部分もあるかもしれません。ここでSSHのすべてを教える時間はありませんが、覚えておくと便利なショートカットを2つ紹介します。
- 上下の矢印キーで、以前入力したコマンドを呼び出して再利用できる
- 長いファイル名を入力するときにTabキーを押すと、名前が一意であれば自動補完される
SSHに慣れてきたら、いよいよWebサイトのバックアップを始めましょう。
SSH経由でWebサイトにログインする
まず、お好みのSSHツールを起動して、次のコマンドを入力します。
ssh username@yourdomain.com
ドメイン名の代わりにIPアドレスだけを指定することもできます。これは、URLがまだ割り当てられていないWebサーバーにアクセスする場合や、サイト移行中でURLが移動している場合に便利です。
ssh username@YOUR.IP.ADDRESS.HERE
パスワードの入力を求められたら入力します。初めてSSHを使う方は、パスワードを入力しても画面に何も表示されないことに驚くかもしれません。
心配しないでください。これはセキュリティ上の仕様です。
ログインに成功すると、次のようなコマンドプロンプトが表示されます。
-bash-3.2:~$
これが表示されれば、すべて正常です。続けて以下のコマンドを実行しましょう。
まずは周囲を見渡し、Webディレクトリへ移動できるか試してみます。次のように入力してください。
ls
これで現在のファイルとフォルダの一覧が表示されます。
cd directoryname
と入力すると、指定したディレクトリへ移動できます。今回は、Webサイトのルートである httpd ディレクトリへ移動します。その後、もう一度 ls を実行して、内容を確認しておきましょう。
ここまで来たら、SSHバックアッププロセスを開始する準備が整いました。
SSHでWebサイトのデータベースをバックアップする
バックアップ対象がWordPressのインストールである場合、データベースとファイルの両方をバックアップする必要があります。
データベースをバックアップするには、3つの情報が必要です。幸い、WordPressを運用しているなら、これらはすべてwp-config.phpファイルで確認できます。
- データベース名
- データベースユーザー名
- データベースパスワード
(別のデータベース駆動型Webアプリケーションを使用している場合は、セットアップドキュメントを参照してこれらの情報を確認してください。)
次に、以下のシンプルなコマンドを実行します。ユーザー名、テーブル名、バックアップファイル名を必要に応じて置き換えてください。
mysqldump --add-drop-table -u [username] -p [tablename] > [backupfilename].sql
Enterキーを押し、パスワードの入力を求められたら入力します。コマンドの実行後、もう一度 ls コマンドを実行して、ファイルが出力されたことを確認できます。おめでとうございます!これで、データベース内のすべての情報が単一のSQLファイルとしてまとめられました。あとはバックアップとして保管するか、別の場所へインポートするだけです。
SSHでデータベースにアクセスできない場合
ここまでの手順では、データベースサーバーがホスティングと同じサーバー上で稼働していることを前提としています。
しかし、GoDaddyの場合、MySQLデータベースはリモートサーバー上に保存されており、そこにはSSHアクセスできません。こうしたケースでは、ホストのcPanel経由でPHPMyAdminにアクセスする必要があります。この方法については本チュートリアルの範囲外となるため、ホスティング業者の公式ドキュメントをご確認ください。
SSHでWebサイトのファイルをバックアップする
データベースがサーバー上の単一ファイルとして保存できたら、次はSSH経由でサイト全体をバックアップします。まず、cdコマンドでバックアップを作成したいディレクトリへ移動します。次に、以下のコマンドを使用します。
tar -vcf yourbackupfilename.tar /directory/path
このコマンドの構成要素を分解して見てみましょう。
tar--- Linuxで一般的な圧縮形式。zipに似ていますが、より効率的です。-vcf--- 「新しいアーカイブを作成し、実行中の処理を表示する」というシンプルなオプションです。yourbackupfilename.tar--- アーカイブに付ける任意のファイル名です。/directory/path--- Webサイトディレクトリへのパスを指定します。
ファイルパスの代わりにピリオド1つ(.)を指定することもできます。これは「すべてのファイルを含める」という意味になります。ワイルドカードの * を使うことも可能ですが、この場合 .htaccess などの隠しファイルが除外されてしまいます。WordPressにとって .htaccess は不可欠なファイルなので注意が必要です。
コマンドの実行が完了すると、サイト上のすべてのファイルを含む単一のTARファイルが完成します。
この時点でFTP接続を行い、サイトのアーカイブをダウンロードすれば完了です。
SSHでWebサイトのバックアップを復元する
最悪の事態が発生し、サイトに深刻な問題が起きてしまったとしましょう。先週バックアップしたすべてのデータを含むTARファイルがあるので、それを復元したいところです。
まず、FTPでログインし、バックアップファイルをサーバーのルートディレクトリへアップロードします。
次に、すべてのファイルを展開します。バックアップ時の逆の操作です。
tar -vxf yourbackupfilename.tar
警告:既存のファイルが上書きされます!
ここでの重要な違いは次の部分です。
-vxf
--- このオプションにより、tarは新しいバックアップを作成する代わりに、ファイルを展開(抽出)します。
最後のステップは、データベースを元の場所へ戻すことです。まず、以前と同じパスワード・テーブル名を持つ空のデータベースを用意します。これがない場合は、サイトの設定も変更する必要があります。
データベースを復元するには、以下のコマンドを使用します。
mysql -u [username] -p [tablename] < [databasebackupfilename].sql
SSHによるサイトバックアップ:Webコンソールやプラグインより速い
サイトのバックアップを支援するさまざまなツールやプラグインが公開されていますが、SSHほど高速なものはありません。
GoDaddyでも、その他のホスティング業者でも、SSHアクセスがあれば今すぐWebサイトをバックアップできます。さらに詳しく知りたい方は、SSHを使ったLinuxサーバーのリモート管理方法を学んでみましょう。
-
PHPバックドアとは?Webサイトへの感染経路と検出・駆除対策を徹底解説
毎日10万件以上のWebサイトがハッキング被害に遭っていると言われています。しかも、一度侵害されたサイトは、再び攻撃を受ける確率が40%に達するとされます。その背景にあるのが、ハッカーが仕掛けていく「PHPバックドア」と呼ばれる悪意あるコードです。このマルウェアは除去が非常に難しく、管理パネルを完全にリセットしても、サイトの奥深くに潜伏し続けることがあります。「バックドア(裏口)」という名前の通り、認証を回避してサイトへ侵入するための隠し通路となるものです。現在、WordPressやMagentoなど多くの人気CMSがサーバーサイドスクリプト言語「PHP」で動作しており、Web上の80%以上の
-
WindowsのコマンドプロンプトでIPアドレスを確認する方法
PCのIPアドレスを調べたいのに、どこを見ればいいのか分からない——そんな経験はありませんか?心配いりません。Windowsに標準搭載されているコマンドプロンプトを使えば、わずか数秒で自分のPCのIPアドレスを確認できます。この記事では、その具体的な手順をわかりやすく解説します。 コマンドプロンプト(cmd)でIPアドレスを調べる方法 マウスで操作するGUIよりも、キーボードから直接コマンドを打ち込んでPCを制御する方が性に合っている、というユーザーも少なくありません。実は、IPアドレスの確認もコマンドプロンプトから簡単に行えるのです。以下の手順に従ってみましょう。 まず、スタートメニューの検