差分バックアップ(snapshot)
定期的に差分バックアップを取るためのセットアップ方法
snapshotを定期的に実行することにより、/.snapshotという隠しディレクトリにバックアップを保存することができます。
そのために、まず、「rsnapshot」をインストールする必要があります。
参考:https://spp5.blogspot.com/2013/07/backup-with-rsnapshot.html
参考:https://linux.die.net/man/1/rsnapshot
参考:https://web.chaperone.jp/w/index.php?rsnapshot
参考:https://wiki.archlinux.jp/index.php/Rsnapshot
参考:https://itsakura.com/centos-cron-hello
◆rsnapshotのインストール
[teruki@almalinux9 ~]$ sudo yum install rsnapshot [sudo] teruki のパスワード: メタデータの期限切れの最終確認: 3:00:25 時間前の Sun 05 Mar 2023 02:26:13 PM JST に実施しました。 依存関係が解決しました。 ============================================================================================================================================================ パッケージ アーキテクチャー バージョン リポジトリー サイズ ============================================================================================================================================================ インストール: rsnapshot noarch 1.4.5-1.el9 epel 112 k 依存関係のインストール: perl-DirHandle noarch 1.05-479.el9 appstream 21 k perl-Lchown x86_64 1.01-24.el9 epel 17 k トランザクションの概要 ============================================================================================================================================================ インストール 3 パッケージ ダウンロードサイズの合計: 150 k インストール後のサイズ: 406 k これでよろしいですか? [y/N]: y パッケージのダウンロード: (1/3): perl-DirHandle-1.05-479.el9.noarch.rpm 108 kB/s | 21 kB 00:00 (2/3): perl-Lchown-1.01-24.el9.x86_64.rpm 79 kB/s | 17 kB 00:00 (3/3): rsnapshot-1.4.5-1.el9.noarch.rpm 429 kB/s | 112 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------ 合計 71 kB/s | 150 kB 00:02 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : perl-Lchown-1.01-24.el9.x86_64 1/3 インストール中 : perl-DirHandle-1.05-479.el9.noarch 2/3 インストール中 : rsnapshot-1.4.5-1.el9.noarch 3/3 scriptletの実行中: rsnapshot-1.4.5-1.el9.noarch 3/3 検証 : perl-DirHandle-1.05-479.el9.noarch 1/3 検証 : perl-Lchown-1.01-24.el9.x86_64 2/3 検証 : rsnapshot-1.4.5-1.el9.noarch 3/3 インストール済み: perl-DirHandle-1.05-479.el9.noarch perl-Lchown-1.01-24.el9.x86_64 rsnapshot-1.4.5-1.el9.noarch 完了しました! [teruki@almalinux9 ~]$
◆ファイルがインストールされた場所の確認方法
[teruki@almalinux9 ~]$ rpm -qali | less Name : rsnapshot Version : 1.4.5 Release : 1.el9 Architecture: noarch Install Date: Sun 05 Mar 2023 05:26:54 PM JST Group : Unspecified Size : 389545 License : GPL-2.0-or-later Signature : RSA/SHA256, Sat 31 Dec 2022 07:11:18 AM JST, Key ID 8a3872bf3228467c Source RPM : rsnapshot-1.4.5-1.el9.src.rpm Build Date : Sat 31 Dec 2022 07:04:25 AM JST Build Host : buildvm-x86-11.iad2.fedoraproject.org Packager : Fedora Project Vendor : Fedora Project URL : https://rsnapshot.org/ Bug URL : https://bugz.fedoraproject.org/rsnapshot Summary : Local and remote filesystem snapshot utility Description : This is a remote backup program that uses rsync to take backup snapshots of filesystems. It uses hard links to save space on disk. /etc/rsnapshot.conf /usr/bin/rsnapshot /usr/bin/rsnapshot-diff /usr/share/doc/rsnapshot /usr/share/doc/rsnapshot/AUTHORS /usr/share/doc/rsnapshot/ChangeLog /usr/share/doc/rsnapshot/README.md /usr/share/doc/rsnapshot/rsnapshot.conf.default /usr/share/doc/rsnapshot/utils /usr/share/doc/rsnapshot/utils/README /usr/share/doc/rsnapshot/utils/backup_dpkg.sh /usr/share/doc/rsnapshot/utils/backup_mysql.sh /usr/share/doc/rsnapshot/utils/backup_pgsql.sh /usr/share/doc/rsnapshot/utils/backup_rsnapshot_cvsroot.sh /usr/share/doc/rsnapshot/utils/backup_smb_share.sh /usr/share/doc/rsnapshot/utils/debug_moving_files.sh /usr/share/doc/rsnapshot/utils/make_cvs_snapshot.sh /usr/share/doc/rsnapshot/utils/mkmakefile.sh /usr/share/doc/rsnapshot/utils/mysqlbackup.pl /usr/share/doc/rsnapshot/utils/random_file_verify.sh /usr/share/doc/rsnapshot/utils/rsnapreport.pl /usr/share/doc/rsnapshot/utils/rsnapshot-copy /usr/share/doc/rsnapshot/utils/rsnapshot_if_mounted.sh /usr/share/doc/rsnapshot/utils/rsnapshot_invert.sh /usr/share/doc/rsnapshot/utils/rsnapshotdb /usr/share/doc/rsnapshot/utils/rsnapshotdb/CHANGES.txt /usr/share/doc/rsnapshot/utils/rsnapshotdb/INSTALL.txt /usr/share/doc/rsnapshot/utils/rsnapshotdb/LICENSE.txt /usr/share/doc/rsnapshot/utils/rsnapshotdb/README.txt /usr/share/doc/rsnapshot/utils/rsnapshotdb/TODO.txt /usr/share/doc/rsnapshot/utils/rsnapshotdb/rsnapshotDB.conf.sample /usr/share/doc/rsnapshot/utils/rsnapshotdb/rsnapshotDB.pl /usr/share/doc/rsnapshot/utils/rsnapshotdb/rsnapshotDB.xsd /usr/share/doc/rsnapshot/utils/rsnaptar /usr/share/doc/rsnapshot/utils/sign_packages.sh /usr/share/licenses/rsnapshot /usr/share/licenses/rsnapshot/COPYING /usr/share/man/man1/rsnapshot-diff.1.gz /usr/share/man/man1/rsnapshot.1.gz
◆rsnapshotの設定
[teruki@almalinux9 ~]$ sudo vi /etc/rsnapshot.conf ######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### #retain alpha 6 #retain beta 7 #retain gamma 4 #retain delta 3 ↓ 以下に変更します retain hourly 6 ←バックアップを6回分作成することを意味します。 retain daily 7 retain weekly 4 retain monthly 3 ## crontabを使ってrsnapshotを実行することで、自動バックアップを行うことができます。crontabを設定するときは以下となります。 ## 0 */4 * * * root /usr/bin/rsnapshot hourly ←4時間ごとに6回バックアップを取ります。(0時,4時,8時,12時,16時,20時) ## ※ただし、rsnapshot.confのオプション sync_first(sync_first 1)を設定した場合には、hourlyの設定は以下となります。 ## 0 */4 * * * root /usr/bin/rsnapshot sync && /usr/bin/rsnapshot hourly ## 50 23 * * * root /usr/bin/rsnapshot daily ←毎日23:50ごとにバックアップを取ります。 ## 40 23 * * 6 root /usr/bin/rsnapshot weekly ←毎週土曜日 (週の6番目)の23:40にバックアップを取ります。 ## 30 23 1 * * root /usr/bin/rsnapshot monthly ←毎月1日の23:30にバックアップを取ります。 ※次に、バックアップの失敗したときの対処方法として、sync_firstを有効にします。 同期中、バックアップが失敗すると不完全なスナップショットがhourly.0に 残ってしまいます。 やり直すために再度、rsnapshot hourlyコマンドを使用すると、 デフォルト設定のままでは、hourly.0はhourly.1にリネームされ、新しくhourly.0が作成されます。 よって、hourly.1には失敗した不完全なスナップショットが格納されることになってしまいます。 このオプションをつけた場合、まず、rsnapshot syncの実行で、「.sync」ディレクトリにバックアップします。 次に、rsnapshot hourlyコマンドを使用することで「.sync」が 「hourly.0」にリネームされます。 これにより、失敗してもrsynapshot syncを実行すれば、「.sync」ディレクトリに対し 再度「.sync」に同期され、やり直すことができます。 # When sync_first is enabled, it changes the default behaviour of rsnapshot. # Normally, when rsnapshot is called with its lowest interval # (i.e.: "rsnapshot alpha"), it will sync files AND rotate the lowest # intervals. With sync_first enabled, "rsnapshot sync" handles the file sync, # and all interval calls simply rotate files. See the man page for more # details. The default is 0 (off). # #sync_first 0 ↓ 以下に変更します sync_first 1 次に、バックアップ対象を指定します。localhostはバックアップ対象のマシンが自分自身ということを意味します。 ############################### ### BACKUP POINTS / SCRIPTS ### ############################### # LOCALHOST backup /home/ localhost/ backup /etc/ localhost/ backup /usr/local/ localhost/
◆crontabの設定
自動バックアップを設定します。
[teruki@almalinux9 ~]$ sudo vi /etc/crontab # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed ### snapshot ### 0 */4 * * * root /usr/bin/rsnapshot sync && /usr/bin/rsnapshot hourly 50 23 * * * root /usr/bin/rsnapshot daily 40 23 * * 6 root /usr/bin/rsnapshot weekly 30 23 1 * * root /usr/bin/rsnapshot monthly※上記のように/etc/crontabの直接編集では動きませんでした。 >crontab -e の起動にて、以下内容を追記することで対応。この時root記述は不要。 root記述をしてしまうとエラーで動かない。 [teruki@almalinux9 ~]$ sudo crontab -e ### snapshot ### 0 */4 * * * /usr/bin/rsnapshot sync && /usr/bin/rsnapshot hourly 50 23 * * * /usr/bin/rsnapshot daily 40 23 * * 6 /usr/bin/rsnapshot weekly 30 23 1 * * /usr/bin/rsnapshot monthly
◆バックアップファイル容量の確認
[teruki@almalinux9 ~]$ sudo rsnapshot du 1002M /.snapshots/.sync 4.0M /.snapshots/hourly.0/ 4.1M /.snapshots/hourly.1/ 4.1M /.snapshots/hourly.2/ 4.1M /.snapshots/hourly.3/ 4.1M /.snapshots/hourly.4/ 4.1M /.snapshots/hourly.5/ 4.0M /.snapshots/daily.0/ 4.1M /.snapshots/daily.1/ 4.1M /.snapshots/daily.2/ 1.1G 合計 [teruki@almalinux9 ~]$
ディスカッション
コメント一覧
まだ、コメントがありません