Synology ファイルの Ubuntu へのバックアップ: rsnapshot アクティブ プルおよびハード リンク スナップショットのチュートリアル

この記事では、Ubuntu が読み取り専用モードで Synology 共有フォルダーをアクティブにプルできるようにし、rsnapshot を使用して日次、週次、月次のハード リンク スナップショットを作成するための構成、検証、回復、およびトラブルシューティングの方法を紹介します。

目標が「シンプルで信頼性が高く、履歴ファイルを直接開くことができる」ことである場合、Ubuntu が Synology 共有フォルダーを積極的に取得し、rsnapshot を使用してローカル スナップショットを作成することが非常に適しています。 Synology は読み取り専用データのみを提供し、Ubuntu はタイミング、ログ、バージョン ローテーション、ハードディスク バックアップを担当します。 Synology はファイルを誤って削除した後、昨日、先週、または先月のディレクトリからファイルを直接コピーして戻すこともできます。

rsnapshot は、rsync およびハード リンクに基づいて動作します。各スナップショット ディレクトリはファイルの完全なコピーのように見えますが、変更されていないファイルがディスク領域を何度も占有することはありません。写真、ビデオ、PDF、DOCX などは依然として通常のファイルであり、特殊な回復ソフトウェアやバックアップ データベースに依存しません。

推奨アーキテクチャ

1
2
3
4
5
6
7
群晖共享文件夹
photo / 工作文件 / 个人文件 / 其他共享文件夹
        ↓ 只读 SMB、NFS,或 rsync/SSH
Ubuntu:rsnapshot 定时拉取
Ubuntu 备份硬盘(ext4、XFS 等)
daily.0 / daily.1 / weekly.0 / monthly.0

これは、「Synology がファイルを Ubuntu にプッシュする」ソリューションではありません。 Ubuntu は Synology に読み取り専用アクセス権を持っており、Synology は Ubuntu バックアップ ディスクの書き込みパスワードを保存する必要はありません。通常、この権限の分離はより安全です。Synology が悪用されたり、ランサムウェアの影響を受けたり、パッケージ アカウントが悪用された場合、攻撃対象領域は Ubuntu の履歴スナップショットに直接広がりません。この判断は、オフライン ディスク、オフサイト コピー、または回復訓練の交換ではなく、アクセス許可の分離に基づいています。

適用範囲と境界

この方法は、以下に特に適しています。

  • 写真、ビデオ、ドキュメント、プロジェクト資料などの一般的な共有フォルダー。
  • 複数の時点を保持したいが、特別な回復ツールを学習したくない。
  • Ubuntu には専用のバックアップ ハード ドライブがすでにあります。
  • マシン イメージ全体ではなく、いくつかの共有フォルダーを選択したいだけです。

これは主にファイル自体をバックアップするもので、DSM、スイート構成、データベース サービス ステータス、またはすべてのシステム レベルのメタデータの完全な復元と同等ではありません。完全な災害復旧が必要な場合でも、ハイパー バックアップ、アプリケーション エクスポート、データベース バックアップ、またはその他の対象ソリューションを保持する必要があります。

Synology 側で読み取り専用バックアップ アカウントを作成します

まず、DSM で backup-reader などの専用アカウントを作成します。

  1. バックアップが必要な共有フォルダーに読み取り権限のみを付与します。
  2. 管理権限、書き込み権限、および不要なアプリケーション権限を付与しないでください。
  3. 独立した強力なパスワードを使用します。
  4. Ubuntu の固定 IP のみが関連する SMB/NFS サービスにアクセスできるようにします。

毎日の管理者アカウントを直接再利用しないでください。これにより、Ubuntu へのマウントに使用される認証情報が漏洩したとしても、影響は読み取りが許可されているディレクトリに限定されます。

Ubuntu マウント Synology 共有フォルダー

各共有フォルダーを固定ディレクトリにマウントすることをお勧めします。

1
2
3
sudo mkdir -p /mnt/synology/photo
sudo mkdir -p /mnt/synology/files
sudo mkdir -p /mnt/synology/documents

SMB と NFS の両方を使用できます。 Synology で有効にして使い慣れているプロトコルを選択するだけです。一般的なホーム ネットワークや小規模チーム ネットワークの場合、SMB の方がアクセス許可を確認するのが簡単ですが、NFS は Linux アクセス許可モデルに近いです。

SMB/CIFS 読み取り専用マウントの例

まずツールをインストールし、root のみに読み取りを許可する認証情報ファイルを作成します:

1
2
3
4
5
sudo apt update
sudo apt install -y cifs-utils rsync rsnapshot

sudo install -m 600 /dev/null /root/.smb-synology-credentials
sudo nano /root/.smb-synology-credentials

認証情報ファイルの内容:

1
2
username=backup-reader
password=替换为专用密码

/etc/fstab に例を追加しました。 Synology IP と共有名を実際の値に置き換えます:

1
2
3
//192.168.8.100/photo     /mnt/synology/photo      cifs  ro,credentials=/root/.smb-synology-credentials,vers=3.0,_netdev,nofail  0  0
//192.168.8.100/files     /mnt/synology/files      cifs  ro,credentials=/root/.smb-synology-credentials,vers=3.0,_netdev,nofail  0  0
//192.168.8.100/documents /mnt/synology/documents  cifs  ro,credentials=/root/.smb-synology-credentials,vers=3.0,_netdev,nofail  0  0

マウントをテストし、ディレクトリが読み取り可能であることを確認します:

1
2
3
sudo mount -a
findmnt /mnt/synology/photo
ls -la /mnt/synology/photo | head

ro は重要なオプションです。 mount -a が認証、プロトコル バージョン、または共有が存在しないと報告した場合は、最初に rsnapshot を構成しないでください。最初に単一のマウント ポイントを読み取ります。

NFS 読み取り専用マウントの例

DSM で NFS が有効になっていて、共有フォルダーで Ubuntu IP の読み取り専用マウントが許可されている場合は、次を使用できます:

1
2
sudo apt install -y nfs-common rsync rsnapshot
sudo mount -t nfs -o ro 192.168.8.100:/volume1/photo /mnt/synology/photo

NFS エクスポート パスは、Synology 共有名とボリュームによって異なります。まず、DSM の共有フォルダーの NFS アクセス許可ページで確認します。読み込み可能であることを確認したら、/etc/fstabに実際のエクスポートパスを書き込みます。

Ubuntu バックアップ ハード ドライブを準備します

スナップショット ルート ディレクトリは、Ubuntu の専用バックアップ ディスク上に配置する必要があります。例:

1
2
sudo mkdir -p /srv/backup/rsnapshot
df -Th /srv/backup/rsnapshot

は、ext4XFS などの Linux ファイル システムを優先します。 rsnapshot はスペースを節約するためにハード リンクに依存しているため、FAT や exFAT などの Unix ハード リンクをサポートしないファイル システムにスナップショット ルート ディレクトリを配置しないでください。また、バックアップ ディレクトリを異なるファイル システムに分割しないでください。

まず、バックアップ ハード ディスクのマウントが安定していることを確認することをお勧めします。システムの再起動後も、/srv/backup/rsnapshot がバックアップ ディスク上に存在し、誤って Ubuntu システム ディスクの空のディレクトリに置かれないようにする必要があります。

rsnapshot を構成します

/etc/rsnapshot.confを編集します。この設定ファイルの「設定項目」と「パラメータ」は通常Tabで区切る必要があります。コピー後に検証に失敗した場合は、まずエディターによってスペースに置き換えられているかどうかを確認してください。

以下は、この記事のディレクトリ構造に対応するコア構成です。

1
2
3
4
5
6
7
8
9
snapshot_root	/srv/backup/rsnapshot/

retain	daily	7
retain	weekly	4
retain	monthly	12

backup	/mnt/synology/photo/	photo/
backup	/mnt/synology/files/	files/
backup	/mnt/synology/documents/	documents/

意味は次のとおりです。

設定 役割
snapshot_root すべてのスナップショットを保存するルートディレクトリ
retain daily 7 日次スナップショットを 7 個保持する
retain weekly 4 週次スナップショットを 4 個保持する
retain monthly 12 月次スナップショットを 12 個保持する
backup 読み取り専用のマウント先を、スナップショット内の対応するサブディレクトリへバックアップする

まず構成を確認してから、毎日のスナップショットを手動で実行します。

1
2
sudo rsnapshot configtest
sudo rsnapshot daily

正常に完了すると、ディレクトリはおおよそ次のようになります。

1
2
3
4
5
6
/srv/backup/rsnapshot/daily.0/photo/
/srv/backup/rsnapshot/daily.0/files/
/srv/backup/rsnapshot/daily.0/documents/

/srv/backup/rsnapshot/daily.1/photo/
/srv/backup/rsnapshot/weekly.0/photo/

daily.0 これは、成功した最新のスナップショットです。次回の実行後、古いスナップショットは逆方向にローテーションされ、retain 番号を超えるバージョンはクリーンアップされます。

毎日、毎週、毎月のスケジュールされたタスクを設定します

手動スナップショットが正常であることを確認した後、/etc/cron.d/rsnapshot を作成します:

1
sudo nano /etc/cron.d/rsnapshot

のサンプル コンテンツは次のとおりです。

1
2
3
0 2 * * * root /usr/bin/rsnapshot daily
30 2 * * 1 root /usr/bin/rsnapshot weekly
0 3 1 * * root /usr/bin/rsnapshot monthly

Synology が比較的アイドル状態の期間にタスクを配置することをお勧めします。最初のバックアップではすべてのファイルがコピーされますが、これには最も時間とディスク使用量がかかります。後続の実行では、主に変更された部分が転送されます。

スケジュールされたタスクを実行する前に、マウントが成功したことを確認してください。 rsnapshot の前に簡単なチェックを追加することも、systemd マウント依存関係を通じて実装することもできます。最も重要なことは、/mnt/synology/* がマウントされていないときに、空のディレクトリをソース ディレクトリと間違えないことです。その結果、「成功したがコンテンツが空」のスナップショットが作成されます。

ハード リンクが本当にスペースを節約していることを確認する方法

各ディレクトリに表示される論理サイズだけを見てはいけません。同じ変更されていないファイルの i ノードとリンク数を確認できます:

1
2
ls -li /srv/backup/rsnapshot/daily.0/photo/某个文件.jpg
ls -li /srv/backup/rsnapshot/daily.1/photo/某个文件.jpg

ファイルが変更されていない場合、通常は同じ i ノードが表示され、リンク数は 1 より大きくなります。バックアップ ディスクの実際の使用状況を確認するには、 を使用します。

1
2
du -sh /srv/backup/rsnapshot
df -h /srv/backup/rsnapshot

ファイルを復元する方法

リカバリには rsnapshot コマンドは必要ありません。適切な日付ディレクトリを見つけて、ターゲット ファイルを直接コピーします。

1
cp -a /srv/backup/rsnapshot/daily.1/photo/2026/旅行.jpg /tmp/恢复文件/

Synology に復元する前に、まだ使用中の新しいバージョンが上書きされないように、一時ディレクトリにコピーするか、ファイル名を変更して内容を確認することをお勧めします。フォルダー全体を復元するには、最初に対象の容量とカバレッジを確認する必要があります。

FAQ

rsnapshot は正常に表示されますが、スナップショット ディレクトリは空です

まず、ソース マウント ポイントが実際にマウントされているかどうかを確認します。

1
2
findmnt /mnt/synology/photo
mountpoint -q /mnt/synology/photo && echo mounted

/mnt/synology/photo ディレクトリが存在するだけでは、ネットワーク共有がマウントされていることを意味しません。スケジュールされたタスクを停止し、この無効なスナップショットを削除し、まず SMB/NFS 接続を修復してから、再度実行する必要があります。

構成チェックで構文エラーが表示される

実行:

1
sudo rsnapshot configtest

キー チェックsnapshot_root / で終わるかどうか、backup ルールにソース パスとターゲット サブディレクトリがあるかどうか、構成項目間でタブが使用されているかどうか。 configtest を渡さずに cron に直接参加しないでください。

スナップショットの使用量が突然非常に大きくなりました

まず、多数のファイルの名前変更、移動、再コード化、または時間/権限による変更が行われていて、rsync が再コピーされていないかどうかを確認します。ハード リンクは、コンテンツと属性が変更されていない履歴ファイルのみを再利用できます。初めてバックアップするとき、写真ライブラリをバッチで整理するとき、または頻繁に変更するエクスポート ディレクトリを適用するときは、使用量が増加するのが通常です。

Synology 全体を直接バックアップすることは可能ですか

技術的には、より多くの共有フォルダーをマウントすることは可能ですが、システム ディレクトリ、パッケージ内部ディレクトリ、およびすべてのボリュームを無差別に追加することはお勧めできません。写真、ドキュメント、作業ファイルなどのユーザー データから優先的に開始し、回復プロセスを確認した後、徐々に拡張します。データベースとアプリケーションの構成は、それぞれのエクスポートまたはバックアップのメカニズムに従って個別に処理する必要があります。

概要

Ubuntu のアクティブ プル + rsnapshot のプロセスは非常に明確です。Synology は読み取り専用共有を提供し、Ubuntu はそれを /mnt/synology/ にマウントし、rsnapshot は専用のバックアップ ディスクに書き込まれます。 dailyweeklymonthly スナップショット。過去のバージョンは直接参照できる通常のファイルであり、リカバリとはファイルをコピーすることを意味します。同時に、Synology は Ubuntu バックアップ ディスクへの書き込み権限を持っている必要はありません。これは、写真、文書、作業ファイルを長期保存するための実用的なソリューションです。

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。