USBメモリを使って手軽にバックアップ
cronに登録する
次は作成したスクリプトを周期的に実行するための設定を行います。
例えば/home/bin/backup.sh というスクリプトを毎日3:30に実行するためには以下のように設定します。
# crontab -e 30 3 * * * /home/bin/backup.sh > /dev/null 2>&1
crontabの書式は、設定項目の左から「分(0-59)」「時(0-23)」「日(1-31)」「月(1-12)」「曜日(0-7。0または7は日曜日)」となります。全ての時間で実行する場合は「*」と記載します。上記例の場合、「30 3 * * * 」ですので、毎日3:30に起動するという設定になります。
図1:crontabの書式 |
その右の「/home/bin/backup.sh」は、実際に実行するコマンドになります。ここで注意すべきは、相対パスではなくて絶対パスでコマンドを指定することと、実行するコマンドには実行権限を付けておくことです(例: chmod u+x /home/bin/backup.sh)。
そして一番右には「> /dev/null 2>&1」という不思議な記載が付いています。通常crontab により実行されたコマンドから出力が行われると、cron デーモンはその出力結果をユーザーにメールで配送しますが、このメールが特に必要ないという場合に、この不思議な記載を付けます。もしくは現在広く使われているVixie cronでは、crontabファイルの冒頭に「MAILTO=""」の記述を加えるだけで、全てのメール通知を止めることができます。
古いバックアップを自動削除する
バックアップを取り続けるだけだとUSBメモリの容量がすぐに満杯になってしまいます。そこで古いバックアップを自動削除するようにしたいです。この場合は以下のようなスクリプトを作成し、やはりcron登録します。
#!/bin/sh find /mnt/extdisk -maxdepth 1 -regex '.*\.tar.gz' -ctime +6 -exec rm -f {} \;
最後に
今回ご紹介したバックアップ方法を他の人に共有する時にいつも指摘されるのは、USBメモリを持ち去られたらどうするのか、というものです。その場合いつも冗談でUSBメモリが刺さった自宅サーバーごと金庫に入れておけば大丈夫だと言うようにしてます。
そもそも自宅サーバーで物理セキュリティのことを考え出すといろいろな方向に話が飛びますので、こういった話題はむしろ技術者が集まる飲み会の場に取っておいています。この手の話題は結構盛り上がるんですよ。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OSSを活用したLinuxのデータ・バックアップ
- ゲストOSの構築方法
- 様々なアプリケーションのHAクラスタ化を実現するGeneric ARK
- 新搭載のGRUB 2とCentOS 7でのレスキューモード
- [実践編] Ubuntu Serverの運用・管理、商用製品の利用メリットと今後の展望(前編)
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(前編)
- Dockerコンテナ環境のバックアップツール「Convoy」を使う
- Dockerにおけるデータ専用コンテナ、KVM仮想化環境からの移行
- Zabbix1.8 から 2.0への移行
- データレプリケーションとWebサーバの構築の基本