もう手動で頑張らない!cronとハードリンクで実現する究極の安全自動バックアップ

  • 投稿日:
  • カテゴリ:

【Cursorエディタでシェルスクリプト開発】

ウェブサイトのデータ保全は、ブログ運営者にとって避けて通れない課題です。手動でのFTP転送は時間がかかり、サーバー障害や誤操作、ランサムウェアのリスクに対して脆弱です。

この記事では、自宅のLinuxサーバーを司令塔とし、複数のレンタルサーバー(XREA/CoreServerなど)からデータを安全かつ最も効率的に引き出す、実運用に耐えうるバックアップシステムの構築方法を、技術的な仕組みと合わせて解説します。


????️ こんな課題を抱えていませんか?

  • 毎週の手動FTP転送が面倒で、ついサボってしまう。
  • バックアップファイルの容量が世代が増えるたびに膨大になり、HDDを圧迫している。
  • パスワード認証で自動実行することにセキュリティ上の懸念がある。

???? 実現する技術的ソリューション

このシステムは、Linuxの強力なツール(rsync, lftp, cron)を組み合わせて構築され、以下の高度な機能を実現します。

1. ゼロコストの世代管理:Copy-on-Writeの仕組み

従来のバックアップと決定的に異なるのは、バックアップの世代が増えてもディスク容量がほぼ増えない点です。

  • 仕組み: ダウンロードする前に、前回世代のディレクトリをハードリンク(iノード共有)を使って新しい世代ディレクトリに丸ごと複製します。その後、lftprsyncでリモートからデータをダウンロードし、変更があったファイルだけを上書きします。
  • メリット: 変更のないファイルはハードリンクのまま残り、容量は消費されません。ディスク消費は変更差分のみに抑えられます。

2. 暗号化と自動実行の両立

  • 安全な通信経路: パスワードやデータが平文で流れるFTPを避け、FTP over TLS (FTPS)SSHトンネル(rsync)による暗号化通信を採用します。
  • Cronによる完全自動化: パスワードを引数で渡す汎用シェルスクリプト設計により、cronが毎日静かに実行してくれる安定した日次バックアップを実現します。

3. 堅牢なファイルハンドリング

  • マルチサーバー対応: 共通スクリプト設計により、複数のレンタルサーバー設定を一つのスクリプトで一元管理できます。
  • シンボリックリンク無視: lftp--no-symlinks オプションを適用し、レンタルサーバー上のリンク(例: ログへのリンク)を誤って辿り、余計なデータをダウンロードしたり、意図せずカレントディレクトリに書き込んだりする事故を防ぎます。

この記事を読んで、cronが毎日自動で容量を気にせず安全にデータを守ってくれる「賢いバックアップ」の体制を整えましょう!

リンクソース

  • 記事用リンクソース:
  • Wiki用リンクソース(PukiWiki):
  • Wiki用リンクソース(MediaWiki):
  • SNS投稿用: