Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

自動バックアップ

543 views

Published on

2014年度LT大会用

Published in: Devices & Hardware
  • Be the first to comment

  • Be the first to like this

自動バックアップ

  1. 1. バックアップの自動化
  2. 2. 最近していること • マイクラ • 他が特にない • どうしよう
  3. 3. • ある人「鯖の自動バックアップする仕組みを 構築しませんか」 • 僕「すごそう」 • ある人「できるならやっといてくださいー」 • 僕「あ、はい、はい(わからない)」 三┌( ^o^)┘ Google先生
  4. 4. なぜバックアップするのか 重要なファイル • データが壊れたり • 誤って削除したり • 不正に書き換えられたり →つらみ ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああ
  5. 5. バックアップ • バックアップを取っておけばこのような時でも 元に戻せる →バックアップをとろう!
  6. 6. バックアップするには 自動でバックアップ ↓ ↓ cron rsync
  7. 7. rsync • UNIXシステムにおいて、差分符号化を使って データ転送量を最小化し、遠隔地間のファイ ルやディレクトリの同期を行うアプリケーショ ンソフトウェアである • とは
  8. 8. rsync • ファイルを同期するプログラム • 差分を検出しそれのみを転送する – バックアップ目的なら差分が少ないので効率的 • sshなどリモートシェル経由の利用が可能
  9. 9. rsyncの使い方 • 基本:rsync [オプション] コピー元 コピー先 • rsync -a /hoge/ /copy/ とすれば/hoge/ディレ クトリが/copy/にバックアップされる • コピー先には外部ストレージなども指定可能 • (リモートホストにバックアップする場合は rsync -a /hoge/ user@hogehoge.com:copy/)
  10. 10. rsyncのオプション • -a … アーカイブモード、以下のすべてを指定したのと同じ • -r … ディレクトリを再帰的にコピー • -l … シンボリックリンクをDESTで作り直す • -p … DESTのパーミッションをSOURCEと同じにする • -t … ファイル転送時修正時間情報もリモートに転送 • -g … DESTの所有グループをSOURCEと同じにする • -o … DESTの所有者をSOURCEと同じにする • -D … デバイスファイルとスペシャルファイルを維持する • --delete … コピー元でファイルを削除するとコピー先でも削除 される • -v … コピーするファイル名を標準出力 • --update … コピー先を更新してもコピー元で上書きされない • -n … コピーを行わずコマンドを実行した結果のみ出力(テス トモード)
  11. 11. rsyncのオプション • -H …ハードリンクを維持する • -I … 同じファイルサイズ、修正時間のファイルもアップデートする • -E … リソースフォークもコピー • -z … 転送時にgzip圧縮を使用 • -R … 相対パス名を使う • -e … リモートシェルを指定 • --numeric-ids … 数字のuidとgidを使う • --exclude=PATTERN … PATTERNに一致するファイルをコピーしない • --delete-excluded … -excludeオプションで除外するファイルでもDESTにあれば削除 • --bwlimit=KBPS … ファイルの転送に帯域制限をかける(KB/秒) • --progress … 転送中ファイルの転送速度を表示 • --stats … 転送終了後に統計情報を表示 • --partial .. 同期途中のファイルを残す(デフォルトでは同期中同期できないファイルは削除) • -h … --progressや—statsで表示される数値をわかりやすい単位に丸める • --inplace … 同期先ファイルに直接上書きコピーする
  12. 12. rsyncのオプション 基本は -a --delete (必要に合わせて-vなど)
  13. 13. cron • UNIX系システムの常駐プログラム(デーモン) の一種で、ユーザの設定したスケジュールに 基づいて指定したコマンドやシェルスクリプト などを自動実行してくれるプログラム。
  14. 14. cron • 読み方は「クローン」または「クーロン」 • 指定時刻にコマンドを自動実行するプロセス • 「crontab」というファイルに実行スケジュール を記述 • crondというデーモンがcrontabに従って実行
  15. 15. crontabの設定 • crontab -e でcronの設定を編集 • 分 時 日 月 曜日 コマンド で指定 • ハイフン(-)で範囲指定やコンマ(,)で複数選 択できる • *を指定するとすべての値となる
  16. 16. crontabの設定 • crontab -r としてしまうとcronの全設 定が削除されるので注意 – 別ファイルに記述して保存するのが無難
  17. 17. 今回 • /home/user/hoge/ディレクトリを /backups/hoge/にバックアップ • 実行は1時間ごと
  18. 18. バックアップ方法 • ①rsyncコマンドを記述したスクリプトファイル の作成 • ②スクリプトファイルをcronで自動実行 • これだけ 簡単!!
  19. 19. ①スクリプトファイルの記述 • この内容のbackup.shファイルをテキストエ ディターで作成し/home/user/に保存 • $chmod u+x backup.sh で実行権限を与える #!/bin/sh rsync -va --default /home/user/hoge/ /backups/hoge/
  20. 20. ②cronで自動実行 • crontab -e でcrontabを編集(nanoなど) • 保存し、待つ • バックアップが実行されています • 楽しい!! ('ω' )三('ω')三( 'ω') 0 * * * * /home/user/backup.sh
  21. 21. • 僕「自動バックアップできました-」 • ある人「おお」 しかし
  22. 22. • たったの2ステップ • なんか物足りない • →自分のPCのファイルを鯖にバックアップす る方法を考えよう!!
  23. 23. バックアップ方法 • ①sshでサーバーに接続 • ②rsyncコマンドを記述したスクリプトファイル の作成 • ③スクリプトファイルをcronで自動実行
  24. 24. ssh • “Secure Shell”の略 • 暗号などを利用し、安全にリモートコンピュー タと通信するためのプロトコル • パスワード認証や公開鍵認証
  25. 25. ①ssh接続 • cronではいちいちパスワード打てない →必然的に公開鍵認証 • ssh keygen -t rsa で鍵生成(/.ssh/) • 生成されたうちid_rsa.pubをバックアップ先の authorized_keysへ、id_rsaをバックアップ元へ 移動
  26. 26. ②スクリプトの作成 ③cronで自動化 • この内容のbackup.shファイルを/hoge/user/ に保存 • $chmod u+x backup.sh で実行権限を与える • crontabに登録 rsync -a --delete /home/user/hoge/ user@hogehoge.com:backups/hoge/
  27. 27. まとめ • バックアップは大事
  28. 28. ご清聴ありがとうございました

×