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. セキュリティ: 権限管理に注意

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ