Система fsbackup была создана для обеспечения резервного копирования серверов разного масштаба на специально отведенном сервере бэкапа.
Fsbackup может выполнять создание как полного образа сервера, так и резервных копий основных подсистем, исключая операционную систему. В случае полного бэкапа, полное восстановление работоспособности происходит в течении нескольких десятков минут, в случае частичного бэкапа для восстановления требуется несколько часов.
На сколько я помню это набор perl скриптов можно установить из исходников или поставить из портов.
# cd /usr/ports/sysutils/fsbackup # make install clean
Скопируем cfg_example в fsbackup.conf и изменим строку в create_backup.sh config_files=»fsbackup.conf».
# cd /usr/local/fsbackup # ls FAQ archive create_backup.sh scripts README cache fsbackup.conf sys_backup VERSION cfg_example fsbackup.pl
#/usr/local/fsbackup/fsbackup.conf $cfg_backup_name = "mybackup"; $cfg_cache_dir = "/usr/local/fsbackup/cache"; $prog_md5sum = "md5sum -b"; $prog_tar = "/usr/bin/tar"; $prog_ssh = "/usr/bin/ssh"; $prog_rm = "/bin/rm"; $prog_gzip = "/usr/bin/gzip"; # Если равно "", то не использовать сжатие. $prog_pgp = ""; # Если равно "", то не применять шифрование. $cfg_checksum = "timesize"; $cfg_backup_style = "backup"; $cfg_increment_level = 7; $cfg_save_old_backup = 1; $cfg_type = "remote_ssh"; $cfg_remote_host = "mybackup.servers"; $cfg_remote_login = "fsbackup"; $cfg_remote_path = "/mnt/drake/lso/backup"; $cfg_remote_ftp_mode = 0; $cfg_remote_password = "123456"; $cfg_local_path = "/usr/local/fsbackup/archive"; $cfg_time_limit = 0; $cfg_size_limit = 0; $cfg_maximum_archive_size = 0; $cfg_root_path = "/"; $cfg_verbose = 2; $cfg_stopdir_prune=0; 1; __DATA__ /usr/local/fsbackup !/usr/local/fsbackup/cache f!\.core$ f!^core$ f!\.o$ f!\.log$ # Linux /usr/src/linux/.config # BSD /var/db/pkg /usr/src/sys/i386/conf # Users /usr/home /root !/home/ftp =!\.netscape/cache/ =!\.mozilla/.*/Cache/ =!\.mozilla/.*/NewCache/ =!\.mozilla/.*/News/ f!.*\.avi$ f!.*\.mpeg$ f!.*\.mpg$ f!.*\.mp3$ # System configuration /etc /var/cron/tabs /var/spool/cron /usr/local/etc # Installed packages /usr/local/bin /usr/local/include /usr/local/lib /usr/local/libdata /usr/local/libexec /usr/local/sbin /usr/local/share /var/ucd-snmp # Programs from source /usr/local/apache/bin /usr/local/apache/conf /usr/local/apache/cgi-bin /usr/local/apache/htdocs /usr/local/apache/libexec /usr/local/apache/src /usr/local/www /usr/local/mysql/bin /usr/local/mysql/include /usr/local/mysql/lib /usr/local/mysql/libexec /usr/local/mysql/var/mysql /usr/local/pgsql/bin /usr/local/pgsql/share /usr/local/pgsql/lib /usr/local/pgsql/include /usr/local/pgsql/data !/usr/local/pgsql/data/base !/usr/local/pgsql/data/pg_xlog /usr/local/squid/bin /usr/local/squid/etc /usr/local/news/etc /usr/local/news/bin /usr/local/news/lib /usr/local/samba/bin /usr/local/samba/lib
Описание всех пораметров есть в конфиге и на http://www.opennet.ru/dev/fsbackup/
Далее создадим пользователя fsbackup.
# adduser # pw user show fsbackup fsbackup:*:1020:1020::0:0:fsbackup:/home/fsbackup:/usr/local/bin/bash
Сгенерируем ключи для доступа по ssh.
# cd /usr/home/fsbackup/.ssh # ssh-keygen #должны появитя два ключя открытый и закрытый. -rw------- 1 fsbackup fsbackup 1675 Jul 13 09:20 id_rsa -rw-r--r-- 1 fsbackup fsbackup 404 Jul 13 09:20 id_rsa.pub #в 8ой версии freebsd ssh требует что бы ключ на сервере назывался authorized_keys # cp ./id_rsa.pub ./authorized_keys #а для клиентской части скопируем ./id_rsa в /root/.ssh/identity # ls -la /root/.ssh/ -rw------- 1 root wheel 1675 Jul 16 14:14 identity -rw-r--r-- 1 root wheel 3507 Jul 16 14:17 known_hosts
Добавим в крон.
#/etc/crontab 0 3 * * * root /usr/local/fsbackup/create_backup.sh
Первый бэкап должен запускаться так.
#/usr/local/fsbackup/fsbackup.pl -n /usr/local/fsbackup/fsbackup.con