USBメモリを使って手軽にバックアップ

2011年7月12日(火)
sanonosa

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メモリが刺さった自宅サーバーごと金庫に入れておけば大丈夫だと言うようにしてます。

そもそも自宅サーバーで物理セキュリティのことを考え出すといろいろな方向に話が飛びますので、こういった話題はむしろ技術者が集まる飲み会の場に取っておいています。この手の話題は結構盛り上がるんですよ。

国内某有名ITベンチャー企業に創業メンバーとして携わる。国内最大規模のシステムを構築運用してきたほか、社内情報システム導入のプロジェクトマネジメント、韓国の交友関係が豊富なことから韓国関連で多数のシステムインテグレーションなども行ってきた。前職は富士通株式会社でSE。
個人blog:http://nosa.cocolog-nifty.com/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています