HowTo: установка rsnapshot - утилита резервного копирования на базе rsync
Я пытаюсь установить rsnapshot - утилита backup использующая rsync
установил rsync, microperl, gawk
при настройки инсталлера говорит "Everything's OK"
Code:
[admin@(none) rsnapshot-1.3.0]$ ./configure --sysconfdir=/opt/etc
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for a BSD-compatible install... ./install-sh -c
checking for perl... /opt/bin/perl
checking for rsync... /opt/bin/rsync
checking for cp... /bin/cp
checking for rm... /bin/rm
checking for ssh... /usr/bin/ssh
checking for logger... /usr/bin/logger
checking for du... /usr/bin/du
configure: creating ./config.status
config.status: creating Makefile
config.status: creating rsnapshot
config.status: creating rsnapshot-diff
config.status: creating rsnapshot.conf.default
config.status: creating t/support/etc/configtest.conf
config.status: creating t/support/etc/rsync.conf
config.status: creating t/support/etc/gnu_cp.conf
config.status: creating t/support/etc/relative_delete_bugfix.conf
config.status: creating t/configtest.t
config.status: creating t/rsync.t
config.status: creating t/gnu_cp.t
config.status: creating t/relative_delete_bugfix.t
Now type "make test" to run the regression test suite.
Then type "make install" to install the program.
After rsnapshot is installed, don't forget to copy
/opt/etc/rsnapshot.conf.default to /opt/etc/rsnapshot.conf
[admin@(none) rsnapshot-1.3.0]$
но когда я говорю make test или make install получаю ошибки
Code:
[admin@(none) rsnapshot-1.3.0]$ make test
/opt/bin/perl -MTest::Harness -e 'runtests(glob "t/*.t")';
Can't locate Test/Harness.pm in @INC (@INC contains: /opt/lib/perl5/5.8.8/mipsel-linux /opt/lib/perl5/5.8.8 /opt/lib/perl5/site_perl/5.8.8/mipsel-linux /opt/lib/perl5/site_perl/5.8.8 /opt/lib/perl5/site_perl .).
BEGIN failed--compilation aborted.
make: *** [test] Error 2
[admin@(none) rsnapshot-1.3.0]$
Code:
[admin@(none) rsnapshot-1.3.0]$ make install
/usr/bin/pod2man -c '' -n 'rsnapshot' -r '' rsnapshot > rsnapshot.1
/bin/sh: /usr/bin/pod2man: not found
make: *** [rsnapshot.1] Error 127
[admin@(none) rsnapshot-1.3.0]$
может надо поставить нормальный перл? не будет ли он слишком грузить систему? места на hdd дофига
HOWTO: установка rsnapshot - утилита для incremental backup на базе rsync
Я сделал это!!! И оно даже работает. Это эмоции, теперь по делу.
Для чего это нужно?
Цитата с http://citkit.ru/package/rsnapshot/
Quote:
rsnapshot - утилита для создания копий состояния файловых систем на базе rsync. Она упрощает создание периодических копий с локальной и удаленных машин по ssh. Она использует, по возможности, жесткие связи, что позволяет существенно уменьшить объемнеобходимого дискового пространства.
На нормальном языке это значит что можно легко делать резевные файлов на локальной машине, с удаленной машины на локальную или наоборот, работать в ssh-тунеле (не праверял) или по скрипту, все это с использование файлов включений/исключений.
При этом резервная копия будет занимать места не намного больше чем объект копирования, т.к. используется т.н. инкрементарное копирование (incremental backup).
Пример: если вы будете копировать 1GB информации каждый час в течение суток, а информация меняться не будет совсем, то объем резервной копии будет 1GB + еще чуть-чуть, а не 24x1GB=24GB
Если из этого 1GB 100MB будут удалены и записана новая инфа, то объем резервной копии составит не 24GB, а 1GB + 100MB удаленных файлов, которые кстати в любой момент можно удалить из архива, если они вам не нужны.
Примеры настройки бэкапа
Quote:
#backup /var/log/rsnapshot localhost/
#backup /etc/passwd localhost/
#backup /home/foo/My Documents/ localhost/
#backup /foo/bar/ localhost/ one_fs=1, rsync_short_args=-urltvpog
#backup_script /usr/local/bin/backup_pgsql.sh localhost/postgres/
# EXAMPLE.COM
#backup_script /bin/date "+ backup of example.com started at %c" unused1
#backup
root@example.com:/home/ example.com/ +rsync_long_args=--bwlimit=16,exclude=core
#backup
root@example.com:/etc/ example.com/ exclude=mtab,exclude=core
#backup_script ssh
root@example.com "mysqldump -A > /var/db/dump/mysql.sql"
#backup
root@example.com:/var/db/dump/ example.com/
#backup_script /bin/date "+ backup of example.com ended at %c" unused2
# CVS.SOURCEFORGE.NET
#backup_script /usr/local/bin/backup_rsnapshot_cvsroot.sh rsnapshot.cvs.sourceforge.net/
# RSYNC.SAMBA.ORG
#backup rsync://rsync.samba.org/rsyncftp/ rsync.samba.org/rsyncftp/
Как это работает?
Вы настраиваете какие папки хоти резервировать, интервал и количество копий. У меня копируются /usr/ и /opt/ каждый час (6 копий), день (7 копий), неделю (3 копии) ну и т.д.
Когда делается первый заход, программа (а по сути это набор скриптов) копирует все файлы в заданную директорию - это довольной ресурсоемкий процесс, но единоразовый.
В последствии программа каждый час сканирует эти каталоги на предмет изменений. Если ничего не изменилось, то заново копирование проводиться не будет. Если файлы были добавлены/удалены, то изменения зафиксируются, при этом старая копия hourly.0 переименовывается в hourly.1 - там сохраняются все старые файлы, в т.ч. удаленные из основных каталогов после этого, а в заново созданной папке hourly.0 фиксируются только измения.
Последняя версия инструкции: 1.1 (Версия 1.0)
английская версия
1 Attachment(s)
установка и настройка. версия 1.0
download perl from http://ipkg.nslu2-linux.org/feeds/op...-13_mipsel.ipk using your computer - asus does it for a very long time beacause it's weight is almost 10MB
download rspnapshot from http://www.rsnapshot.org/downloads.html or https://sourceforge.net/project/show...group_id=88546
copy packages to asus using ftp/smb - whatever.
your also need packages rsync, gawk
ipkg install /tmp/harddisk/exchange/perl_5.8.8-13_mipsel.ipk
ipkg update
ipkg install rsync
ipkg install gawk
cd /tmp/harddisk/exchange/rsnapshot-1.3.0
./configure --sysconfdir=/opt/etc --prefix=/opt --bindir=/opt/bin --mandir=/opt/man --with-perl=/opt/bin/perl --with-rsync=/opt/bin/rsync
[admin@(none) rsnapshot-1.3.0]$ ./configure --sysconfdir=/opt/etc --prefix=/opt --bindir=/opt/bin --with-perl=/opt/bin/perl --with-rsync=/opt/bin/rsync --with-cp=/bin/cp
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for a BSD-compatible install... ./install-sh -c
checking for rm... /bin/rm
checking for ssh... /usr/bin/ssh
checking for logger... /usr/bin/logger
checking for du... /usr/bin/du
configure: creating ./config.status
config.status: creating Makefile
config.status: creating rsnapshot
config.status: creating rsnapshot-diff
config.status: creating rsnapshot.conf.default
config.status: creating t/support/etc/configtest.conf
config.status: creating t/support/etc/rsync.conf
config.status: creating t/support/etc/gnu_cp.conf
config.status: creating t/support/etc/relative_delete_bugfix.conf
config.status: creating t/configtest.t
config.status: creating t/rsync.t
config.status: creating t/gnu_cp.t
config.status: creating t/relative_delete_bugfix.t
Now type "make test" to run the regression test suite.
Then type "make install" to install the program.
After rsnapshot is installed, don't forget to copy
/opt/etc/rsnapshot.conf.default to /opt/etc/rsnapshot.conf
[admin@(none) rsnapshot-1.3.0]$ make install
/usr/bin/pod2man -c '' -n 'rsnapshot' -r '' rsnapshot > rsnapshot.1
/bin/sh: /usr/bin/pod2man: not found
make: *** [rsnapshot.1] Error 127
[admin@(none) rsnapshot-1.3.0]$ make test
/opt/bin/perl -MTest::Harness -e 'runtests(glob "t/*.t")';
t/configtest................ok
t/gnu_cp....................BusyBox v1.1.3 (2007.01.01-14:37+0000) multi-call binary
Usage: cp [OPTION]... SOURCE DEST
t/gnu_cp....................ok
1/1 skipped: GNU cp not found
t/relative_delete_bugfix....ok
t/rsync.....................ok
All tests successful, 1 subtest skipped.
Files=4, Tests=5, 20 wallclock secs (11.75 cusr + 5.85 csys = 17.60 CPU)
[admin@(none) rsnapshot-1.3.0]$ make install
make[1]: Entering directory `/tmp/harddisk/exchange/rsnapshot-1.3.0'
test -z "/opt/bin" || /bin/sh ./mkinstalldirs "/opt/bin"
./install-sh -c 'rsnapshot' '/opt/bin/rsnapshot'
./install-sh -c 'rsnapshot-diff' '/opt/bin/rsnapshot-diff'
test -z "/opt/etc" || /bin/sh ./mkinstalldirs "/opt/etc"
./install-sh -c -m 644 'rsnapshot.conf.default' '/opt/etc/rsnapshot.conf.default'
test -z "/opt/man/man1" || /bin/sh ./mkinstalldirs "/opt/man/man1"
./install-sh -c -m 644 './rsnapshot.1' '/opt/man/man1/rsnapshot.1'
make[1]: Leaving directory `/tmp/harddisk/exchange/rsnapshot-1.3.0'
[admin@(none) rsnapshot-1.3.0]$ cp /opt/etc/rsnapshot.conf.default /opt/etc/rsnapshot.conf
[admin@(none) rsnapshot-1.3.0]$
create backup dir - for example
$ mkdir /tmp/harddisk/backups
edit /opt/etc/rsnapshot.conf
change
snapshot_root /tmp/harddisk/backups/
uncomment if you like
no_create_root 1
uncomment
cmd_cp /bin/cp
uncomment
cmd_ssh /usr/bin/ssh
uncomment
cmd_du /usr/bin/du
uncomment and change
cmd_rsnapshot_diff /opt/bin/rsnapshot-diff
change to your needs (optional). in this example to distribute backups evently through the day you should run it every 4 hours (6x4=24). If you run it hourly you'll have only last 6 hours saved.
interval hourly 6
interval daily 7
interval weekly 4
#interval monthly 3
uncomment and change
logfile /opt/var/log/rsnapshot.log
may be need to be changed (i didn't) - ask guru
lockfile /var/run/rsnapshot.pid
edit to your needs after (my example follows)
###############################
### BACKUP POINTS / SCRIPTS ###
###############################
backup /opt/ asus/
backup /usr/ asus/
backup /tmp/harddisk/exchange/ asus/
save and exit;
rsnapshot configtest
output must be
Syntax OK
test mode
[admin@(none) rsnapshot-1.3.0]$ rsnapshot -t hourly
echo 25893 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /tmp/harddisk/backups/hourly.0/
/opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /opt \
/tmp/harddisk/backups/hourly.0/opt/
mkdir -m 0755 -p /tmp/harddisk/backups/hourly.0/
/opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded /usr \
/tmp/harddisk/backups/hourly.0/usr/
mkdir -m 0755 -p /tmp/harddisk/backups/hourly.0/
/opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
/tmp/harddisk/exchange /tmp/harddisk/backups/hourly.0/exchange/
touch /tmp/harddisk/backups/hourly.0/
next you can edit crontab directly or use cron.hourly (or cron.daily, cron.weekly, cron.monthly) folders created as described at http://www.macsat.com/cron.php
0 */4 * * * /usr/local/bin/rsnapshot hourly #runs every 4 hours (for interval hourly 6: 6x4=24 hours)
30 23 * * * /usr/local/bin/rsnapshot daily #runs every day at 23.30
IMPORTANT (from http://www.rsnapshot.org/howto/1.2/r...he_config_file)
It is usually a good idea to schedule the larger intervals to run a bit before the lower ones. For example, in the crontab above, notice that daily runs 30 minutes before hourly. This helps prevent race conditions where the daily would try to run before the hourly job had finished. This same strategy should be extended so that a weekly entry would run before the daily and so on.
Our ASUS is not a professional power server so take this into consideration.
for testing I created script in cron.5min
[admin@(none) cron.5mins]$ touch /opt/etc/cron.5mins/rsnapshot.sh
[admin@(none) cron.5mins]$ chmod +x /opt/etc/cron.5mins/rsnapshot.sh
edit it with your favourite editor (I use mc)
content should be
#!/bin/sh
/opt/bin/rsnapshot hourly
save and wait for snapshots to appear after 5 mins
don't forget to move rsnapshot.sh to hourly dir
create files for daily and weekly backups
=============
about backup from http://www.rsnapshot.org/howto/1.2/r...he_config_file
1 Attachment(s)
WARNING: Could not lchown() symlink
запустил в первый раз, создал папку hourly.0
запустил во второй раз, создал папку hourly.1, но в лог записалось много варнингов. это нормально?
Code:
[26/Feb/2008:23:49:43] /opt/bin/rsnapshot hourly: started
[26/Feb/2008:23:49:43] echo 6069 > /var/run/rsnapshot.pid
[26/Feb/2008:23:49:43] mkdir -m 0755 -p /tmp/harddisk/backups/hourly.0/
[26/Feb/2008:23:49:43] /opt/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --exclude=*.tmp --exclude=*.avi --exclude=/~* --exclude=/private/* --exclude=/opt/var/log/* /opt /tmp/harddisk/backups/hourly.0/opt/
[26/Feb/2008:23:55:42] touch /tmp/harddisk/backups/hourly.0/
[26/Feb/2008:23:55:43] rm -f /var/run/rsnapshot.pid
[26/Feb/2008:23:55:43] /opt/bin/rsnapshot hourly: completed successfully
Code:
[26/Feb/2008:23:59:29] /opt/bin/rsnapshot hourly: started
[26/Feb/2008:23:59:29] echo 6124 > /var/run/rsnapshot.pid
[26/Feb/2008:23:59:29] native_cp_al("/tmp/harddisk/backups/hourly.0", "/tmp/harddisk/backups/hourly.1")
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/awk"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/bzip2"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/chattr"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/clear"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/cmp"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/diff"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/diff3"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/find"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/less"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/lsattr"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/patch"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/sdiff"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/sed"
[26/Feb/2008:23:59:30] WARNING: Could not lchown() symlink "/tmp/harddisk/backups/hourly.1/opt/opt/bin/tar"
Как сделать бекап настроенной системы
Может кто уже делал, поиск не помог :(
Как можно сделать бекам системы.
можно конечно Ghost, но это требует выключения роутера.
В идеале хотелось бы по расписанию сбрасывать всю настроенную конфигурацию в архив, для возможности быстрого восстановления или отката.