cronに登録する

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

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

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30