2014
6
23

LinuxのWebサーバ内容を外付けHDDへ定期バックアップする

VineLinuxで立てたWebサーバにHDDを認識させて、cronを使って1日1回自動でバックアップをするように設定したメモです。


環境

このような環境です。Apache2のドキュメントルート(/var/www/html)と、WordPressの他にもDBとやりとりしてるモノがあるので、MySQLの内容をバックアップしたいなーと。

HDDをマウント

こちらのとおりにできました。接続して、フォーマットして、マウント。マウント先は /mnt/backup としておきます。

Linux起動時に自動でマウントさせる

再起動したときも自動的にマウントさせたいので、/etc/fstab に

と、最終行に追記。

こちらを参考にさせていただきました

バックアップする

まずは手動で動くかどうか。

Apache2のドキュメントルート

こちらは簡単。ファイル名を html.tar という名前にするとして、コマンドライン端末で

このように書いて、書庫ファイルとしてHDDへバックアップ。

MySQL

こちらを参考にさせていただき、稼働させたままだと難しそうだけど、1回停止するのが良さそう。24時間稼働させておく必要はないので、使われる可能性が一番低い朝方に 停止 → バックアップ → 起動 にしてみよう!

ファイル名は mysql.tar にして、このように。

MySQLは設定ファイルなどを起動時に作成し停止時に削除するので、この方法だとバックアップファイルと稼働時のファイルが異なります。バックアップを戻す時は、必ずMySQLを停止させてからにしないとえらいことに…((└(:3」┌)┘)) 実際やってしまってMySQLが動かなくなり、しゅ、しゅうふく…!とアワアワしましたが、apt-get reinstall というコマンドで再インストールしたらまた動くようになりましたメモ。

シェルスクリプトを作る

さて、手動でのバックアップは出来たので、今度はこれをひとつのプログラムにまとめてみます。任意の場所(わたしは /etc/var/www/html にしちゃいました)に bk.sh というファイル名のシェルスクリプトを作っておいて、

2行目で本日の日付を取得して、4~7行目で日付をつけたファイル名でバックアップしています。その後、14日(2週間)前の日付のバックアップファイルを削除する、という内容も書いています。

「`」という記号の打ち方がわからなくて調べましたw Shift + @ なんですね!「’」とか「”」以外にも括る記号ってあるんですねー、初めて使いました!

今度はコマンドライン端末から、

実行権限を変更します。

試しに走らせてみると、ちゃんと動きました!

cronを使って指定時間にシェルスクリプトを実行する

cronはデフォルトで起動していたようなので、コマンドライン端末で

と打つと、エディタが起動してcronの設定ファイルに書き込めるので

と、書けば毎朝4時に実行してくれる、はず…。えっと、保存…。保存とかのコマンドが全然わからなくて四苦八苦しましたw 「ZZ」が保存して終了とか!!((└(:3」┌)┘))

以上です!いまのところこれで動いています。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 618
  • RSSを登録

公開日:2014/06/23


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top