Version 20 (modified by mitty, 12 years ago) (diff) |
---|
- バックアップの実験と話題
- Bacula / DAR / pdumpfs
- Bacula vs DAR in Backup Software. Compare features, reviews, ratings.
- DRBD 再考 (バックアップの効率化)
「DRBD と LVM2 によるバックアップの効率化」 と題する記事には、「LVM のスナップショットを使うなら、バックアップは Secondary 側でやっちまえ」 と (言う内容が丁寧に書いて) あるではないか。
rsnapshot
mechanism
- /etc/rsnapshot.conf
snapshot_root /path/to/root/ retain hourly 24 retain daily 7 retain weekly 4 retain monthly 12 backup /etc/ shizuku/ backup /var/backupdir/somedata/ backup/
- /path/to/root/hourly.0/shizuku/etc/ および /path/to/root/hourly.0/backup/var/backupdir/somedata/バックアップされる
- rsnapshot hourly
- rm hourly.23
- mv hourly.22 hourly.23
- ...
- mv hourly.1 hourly.2
- cp -al hourly.0 hourly.1
- rsync /etc hourly.0/shizuku/
- rsnapshot daily
- rm daily.6
- mv daily.5 daily.6
- ...
- hourly.23 が存在すればmv houly.23 daily.0、無ければ何もしない
- 以下、weekly, monthlyも同様
- hourly.23 -> daily.0, daily.6 -> weekly.0, ...
- hourlyをcronで回さずに、daily, weeklyだけ回していると結果的に消えてしまうので注意
backuppc
- BackupPC: Open Source Backup to disk
- http://backuppc.sourceforge.net/info.html
A powerful web (http/cgi) user interface allows administrators to view log files, configuration, current status and allows users to initiate and cancel backups and browse and restore files from backups.
- http://backuppc.sourceforge.net/info.html
- $ sudo aptitude install -R backuppc
The following NEW packages will be installed: apache2{a} apache2-mpm-worker{a} apache2-utils{a} apache2.2-bin{a} apache2.2-common{a} backuppc ca-certificates{a} libapr1{a} libaprutil1{a} libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} libarchive-zip-perl{a} libasn1-8-heimdal{a} libcap2{a} libclass-isa-perl{a} libencode-locale-perl{a} libfile-listing-perl{a} libgcrypt11{a} libgdbm3{a} libgnutls26{a} libgpg-error0{a} libgssapi3-heimdal{a} libhcrypto4-heimdal{a} libheimbase1-heimdal{a} libheimntlm0-heimdal{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libhx509-5-heimdal{a} libio-socket-ssl-perl{a} libkrb5-26-heimdal{a} libldap-2.4-2{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libp11-kit0{a} libroken18-heimdal{a} libsasl2-2{a} libsocket6-perl{a} libswitch-perl{a} libtalloc2{a} libtasn1-3{a} libtdb1{a} libtime-modules-perl{a} libtimedate-perl{a} liburi-perl{a} libwbclient0{a} libwind0-heimdal{a} libwww-perl{a} libwww-robotrules-perl{a} openssl{a} perl{a} perl-modules{a} postfix{a} samba-common{a} samba-common-bin{a} smbclient{a} ssl-cert{a} The following packages are RECOMMENDED but will NOT be installed: libfile-rsyncp-perl libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-dirent-perl libio-socket-inet6-perl libmailtools-perl libsasl2-modules rrdtool rsync rsync:i386 0 packages upgraded, 63 newly installed, 0 to remove and 1 not upgraded. Need to get 36.3 MB of archives. After unpacking 116 MB will be used.
- /var/lib/backuppc/pc/ 以下にバックアップされる
root@backup:~# ls -l /var/lib/backuppc/pc/localhost/0/f%2fetc/ total 572 -rw-r----- 2 backuppc backuppc 1445 Nov 22 15:28 attrib -rw-r----- 2 backuppc backuppc 1388 Nov 22 15:28 fadduser.conf -rw-r----- 2 backuppc backuppc 65 Nov 22 15:28 faliases -rw-r----- 2 backuppc backuppc 299 Nov 22 15:28 faliases.db drwxr-x--- 2 backuppc backuppc 4096 Nov 22 15:28 falternatives drwxr-x--- 7 backuppc backuppc 4096 Nov 22 15:28 fapache2
- ファイル/ディレクトリ名に「f」が付く
- owner/permissionは変更される
- Edit Hostsからホストを追加 -> ホストを選択、Edit Config -> Xfer からターゲットを設定する
DAR
Bacula
rsync
- http://rsync.samba.org/ftp/rsync/rsync.html
- http://rsync.samba.org/ftp/rsync/rsyncd.conf.html
- 注意すべきオプション
- use chroot
- root権限が必要
- --numeric-idsが暗黙的に指定される
- log file
- 指定しない場合はsyslog行き。chrootの外が指定できる
- read only
- デフォルトではyes
- uid, gid
- daemonをrootユーザで起動した際に、転送で実際に用いられるuid/gidを指定する
The default is uid -2, which is normally the user "nobody".
- rootに変更しないと、以下の様にエラーとなる
rsync: recv_generator: mkdir "/hoge" (in module) failed: Permission denied (13)
- daemonをrootユーザで起動した際に、転送で実際に用いられるuid/gidを指定する
- hosts allow
- --rsh (-e)によりvia sshで起動させると、以下の様になるため使用できない
connect from UNKNOWN (0.0.0.0)
- --rsh (-e)によりvia sshで起動させると、以下の様になるため使用できない
- hosts deny
- マッチしない場合は許可されるため、hosts allow,hosts deny両方にマッチしないホストは許可される
- rsync で pdumpfs みたいなことをする - daily dayflower
- hollyなblog:rsyncで特定のファイルだけ転送する
- sudo + rsync on CentOS 5 - (・∂/Sheeplogh.
- -e "ssh" に -tt オプションをつけること
- Ubuntuでは不要(requirettyが無い)。むしろ
- ssh -tt => 「protocol version mismatch -- is your shell clean?」とエラーになる
- ssh -t => エラーにはならないが、「Pseudo-terminal will not be allocated because stdin is not a terminal.」と(余計な物が)出力される
- rsync によるバックアップを cron で回したい、しかしシェルへのアクセスは拒否したい - QA@IT
パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
- rsync -vvとすると以下の様になっている
- opening connection using: ssh -l username -i /path/to/rsync/ssh.key -p 22 backup.hostname rsync --server --daemon .
- daemonモードでchrootすると、localtimeがUTCになる
- chroot環境に/etc/localtimeをコピーすることで直る(任意の場所では不可)
- rsync sample
RSYNCOPT="--quiet -a --compress --hard-links --xattrs --delete --force --super --timeout 600" rsync --rsync-path="sudo rsync --log-file=$BACKUPLOG" $RSYNCOPT \ -e "ssh -l $SSHUSER -i $SYNCKEY -p $BACKUPPORT" \ --include-from=$RSYNCINCLUDE \ / $BACKUPHOST:$BACKUPROOT
- RSYNCINCLUDE
+ /etc + /etc/** + /home + /home/** + /root + /root/** + /var + /var/cache + /var/cache/munin + /var/cache/munin/** + /var/lib + /var/lib/mailman + /var/lib/mailman/** + /var/lib/munin + /var/lib/munin/** + /var/log + /var/log/** + /var/mail + /var/mail/** + /var/www + /var/www/** # do keep below line - *
- 2.6.7以降、dir_name/***という形式も使える模様
- RSYNCINCLUDE