wiki:TipAndDoc/backup

Version 17 (modified by mitty, 11 years ago) (diff)

--

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
    2. mv hourly.22 hourly.23
    3. ...
    4. mv hourly.1 hourly.2
    5. cp -al hourly.0 hourly.1
    6. rsync /etc hourly.0/shizuku/
  • rsnapshot hourly
    1. rm daily.6
    2. mv daily.5 daily.6
    3. ...
    4. hourly.23 が存在すればmv houly.23 daily.0、無ければ何もしない
  • 以下、weekly, monthlyも同様
    • hourly.23 -> daily.0, daily.6 -> weekly.0, ...
    • hourlyをcronで回さずに、daily, weeklyだけ回していると結果的に消えてしまうので注意

backuppc

  • $ 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)
        
    • hosts allow
      • --rsh (-e)によりvia sshで起動させると、以下の様になるため使用できない
        connect from UNKNOWN (0.0.0.0)
        
    • hosts deny
      • マッチしない場合は許可されるため、hosts allow,hosts deny両方にマッチしないホストは許可される
  • 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/***という形式も使える模様