[[PageOutline]] [[TitleIndex(TipAndDoc/backup,format=group)]] * [http://good-stream.com/goodstream/backup/ バックアップの実験と話題] * Bacula / DAR / pdumpfs * [http://backup-software.findthebest.com/compare/42-67/Bacula-vs-DAR Bacula vs DAR in Backup Software. Compare features, reviews, ratings.] * [http://www.natzworks.com/digital/entries/2009/000209.html DRBD 再考 (バックアップの効率化)] > 「DRBD と LVM2 によるバックアップの効率化」 と題する記事には、「LVM のスナップショットを使うなら、バックアップは Secondary 側でやっちまえ」 と (言う内容が丁寧に書いて) あるではないか。 * [http://serverfault.com/questions/313820/open-source-file-backup-tool-for-linux Open source file backup tool for linux - Server Fault] = rsnapshot = * [http://www.rsnapshot.org/ rsnapshot] * http://www.rsnapshot.org/howto/1.2/rsnapshot-HOWTO.en.html#how_it_works * http://www.rsnapshot.org/screenshots.html * [http://ie.u-ryukyu.ac.jp/howto/index.php?Software%2Frsnapshot Software/rsnapshot - PukiWiki] * [http://might1976.doorblog.jp/archives/52693823.html 俺日記 : 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 1. rm hourly.23 1. mv hourly.22 hourly.23 1. ... 1. mv hourly.1 hourly.2 1. cp -al hourly.0 hourly.1 1. rsync /etc hourly.0/shizuku/ * rsnapshot daily 1. rm daily.6 1. mv daily.5 daily.6 1. ... 1. hourly.23 が存在すればmv houly.23 daily.0、無ければ何もしない * 以下、weekly, monthlyも同様 * hourly.23 -> daily.0, daily.6 -> weekly.0, ... * hourlyをcronで回さずに、daily, weeklyだけ回していると結果的に'''消えてしまう'''ので注意 = backuppc = * [http://backuppc.sourceforge.net/ 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. * $ 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 = * [http://dar.linux.free.fr/ DAR - Disk ARchive] = Bacula = * #33 = 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) }}} * {{{hosts allow}}} * --rsh (-e)によりvia sshで起動させると、以下の様になるため使用できない {{{ connect from UNKNOWN (0.0.0.0) }}} * {{{hosts deny}}} * マッチしない場合は許可されるため、{{{hosts allow}}},{{{hosts deny}}}両方にマッチしないホストは許可される * [http://d.hatena.ne.jp/dayflower/20090513/1242194477 rsync で pdumpfs みたいなことをする - daily dayflower] * [http://blog.livedoor.jp/kurt0027/archives/51808421.html hollyなblog:rsyncで特定のファイルだけ転送する] * [http://d.hatena.ne.jp/sheeplogh/20110506/1304662844 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.」と(余計な物が)出力される * [http://qa.atmarkit.co.jp/q/2077#answer_14460 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になる * [http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=42767&forum=10 rsyncで転送ログの時間のずれ - Linux Square - @IT] * [https://bugzilla.samba.org/show_bug.cgi?id=4402 Bug 4402 – Incorrect time logged with glibc 2.5 inside chroot area] * 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/***}}}という形式も使える模様