2026年7月22日
2026年7月22日
rsyncをcronで自動化する方法
はじめに
この記事では、rsyncを使用してLinuxサーバー間でのファイル同期をcronジョブに自動化する方法について解説します。rsyncは高速で効率的なファイル転送ツールであり、定期的なバックアップやデータ共有のための理想的な選択肢です。
症状・背景
rsyncをcronで自動化する必要が生じる主な場面は以下の通りです:
- ローカルと遠隔地のファイルサーバ間での定期的バックアップ
- サイトやアプリケーションのコードベースを異なる環境に同期する
- ファイルシステムの定期的な一元管理
手順・設定方法
ステップ1: rsync本体とcronのインストール
まず、必要なツールをインストールします。
# apt-getを用いてrsyncとcronをインストール(Debian/Ubuntu系)
sudo apt-get update
sudo apt-get install rsync cron
# yumを用いてrsyncとcronをインストール(CentOS系)
sudo yum install epel-release
sudo yum install rsync cronie crond
ステップ2: タスクの設定ファイルを作成する
cronは定期タスクを管理するために、各ユーザごとに設定ファイルを持つ。rsyncの同期タスクを定義するためには、crontabファイルにジョブを追加します。
# 現在のcrontabファイルを開く
crontab -e
# 下記の例は、毎日午前0時5分にlocalhostとremoteサーバ間で同期を行う
5 0 * * * rsync -avz /path/to/source user@remote:/path/to/destination
ステップ3: 必要なオプションを追加する
rsyncには多くのオプションがあり、それぞれの用途に最適な設定が可能です。以下は例として使用頻度の高いいくつかのオプションを示します。
# 比較と確認のみを行う場合
5 0 * * * rsync -avnz /path/to/source user@remote:/path/to/destination
# 応用: 複数の同期タスクを一括で実行する
5 0 * * * rsync -avz /path/to/source1 user@remote:/path/to/destination1 && rsync -avz /path/to/source2 user@remote:/path/to/destination2
ステップ4: 実践とトラブルシュート
定期的なテストを行い、cronのジョブが正常に実行されることを確認します。
# すべてのcronジョブの実行履歴を見る
sudo tail -f /var/log/cron
注意事項
- rsyncはネットワーク遅延や接続障害を考慮し、定期的なテストを推奨します。
- 大量のデータ転送時にはネットワーク帯域を使用するため注意が必要です。
- セキュリティ上の観点から、必要最小限の権限でrsyncを使うことをお勧めします。
まとめ
1. rsync: ファイル同期用の強力なツール
2. cron: 定期的なタスク実行を管理
3. 定期バックアップ: サーバー間でのデータ一元化と安全性確保
4. テスト: 実際の環境で定期的にテストする
5. セキュリティ: 権限管理に注意
関連記事: