FAQ - ОТВЕТЫ НА ЧАСТО-ЗАДАВАЕМЫЕ ВОПРОСЫ ------------------------------------------------------------------------------- Как увеличить быстродействие и снизить нагрузку на процессор при шифровании бэкапа ? При использовании шифрования через gpg, рекомендуется установить значение $prog_gzip="" (т.е. отключить сжатие архива), так как gpg перед шифрованием самостоятельно сжимает данные. Использование gzip приведет к двойному сжатию и лишней нагрузке на CPU. ------------------------------------------------------------------------------- Возникло опасение, что при большом количестве файлов fsbackup съест все ОЗУ. Ничего подобного, одним из достоинств fsbackup является очень экономные требования к памяти, за счет использования для хранения хэшей библиотеки DBM. По умолчанию, используется не более 4 Мб ОЗУ. ------------------------------------------------------------------------------- Как увеличить быстродействие и оптимизировать распределение памяти для бэкапа ? По умолчанию в памяти находится только 4 Мб индексов, остальное сбрасывается на диск. Быстродействие создания бэкапа можно _на_порядок_ увеличить, за счет увеличения размер кэша для размещения хэш таблицы в памяти. Для этого в fsbackup.pl нужно изменить значения константы: use constant DB_DEF_CACHE_SIZE => размер_кэша_в_байтах; Чем больше DB_DEF_CACHE_SIZE - тем лучше. ------------------------------------------------------------------------------- Собрался сменить fsbackup 1.0 на 1.1 (1.2). Не будет ли проблем с существующей конфигурацией, при переходе на новую версию ? Можно смело оставить старые файлы конфигурации, заменив только скрипты. При желании активировать новинки, появившиеся в 1.1 (1.2), загляните в CHANGES и добавте новые переменные в старые конфиги. ------------------------------------------------------------------------------- Зачем было создавать свою систему бэкапа SQL таблиц, кога есть pg_dump и mysqldump ? Ни тот ни другой не умеют бэкапить все базы, с пропуском нескольких. Например, бэкап всех баз на MySQL сервере, кроме ненужной гигобайтовой базы словоформ для поисковика. fsbackup же опирается на три кита: полный бэкап всех баз, бэкап только указанных в backup_db_list баз данных и бэкап всех баз, кроме указанных в backup_db_list. Начиная с версии 1.2 fsbackup умеет производить бэкап (или исключать из бэкапа) не только отдельные базы, но и таблицы. ------------------------------------------------------------------------------- Как наиболее грамотно организовать бэкап сервера и большим объемом данных ? Рекомендуется, описать бэкап разных участков файловой системы в нескольких файлах конфигурации. Например, создать следующие конфигурации: server_etc.conf - описывает создание бэкапа директории /etc и секретных данных с использованием PGP шифрования; server_local.conf - бэкап /usr/local, за исключением временных файлов. server_sql.conf - бэкап БД. server_home.conf - бэкап директорий пользователей (/home или /usr/home) server_soft.conf - бэкап архива программ (без сжатия) Внимание, директории для сохранения бэкапа в каждом конфигурационном файле должны отличаться ($cfg_remote_path, $cfg_local_path), сохранение в одной и той же директории нескольких, описанных разными .conf файлами, бэкапов не допустимо. ------------------------------------------------------------------------------- Почему при указании переменной $cfg_maximum_archive_size=100, несжатые тома архива оказываются размером немного больше или меньше 100 Кб ? Переменная $cfg_maximum_archive_size учитывает реальный размер данных в файлах плюс примерный размер атрибутов файла или директории. При этом том завершается когда значение счетчика байт больше указанного в конфигурации значения. Например, если последним добавляется файл размером 70Кб и размер уже скомпанованного тома равен 90 Кб, то будет создан архивный файл размером 90 Кб, а файл размером 70 Кб. будет помещен в следующий том. Т.е. система старается создавать архивные тома размером чуть меньше, чем размер указанный в файле конфигурации, за исключением случая наличия файла размер которого больше лимита накладываемого на размер тома, в этом случае файл целиком помещается в архивный том, несмотря на его большой размер. Предотвратить создание архивных томов не помещающихся на накопитель, используемый для резервирования, можно определив максимально возможный размер файла для помещения в архив ($cfg_size_limit). ------------------------------------------------------------------------------- Как мне не архивировать файлы из таких - то каталогов, причем сами каталоги должны быть. Например, почтовые каталоги qmail, задаю маску: =!Maildir/cur/* в результате не создает в архиве каталогов cur в профилях пользователя. Достаточно указать: f!.*/Maildir/new/.* тогда все файлы внутри /Maildir/new/ не будут помещены в архив, а директория будет добавлена в .dir файл и при восстановлении будет воссоздана. В tar архив пустые директории не помещаются, только в .dir список. ------------------------------------------------------------------------------- Почему fsbackup не делает backup каталогов, если в них нет файлов ? Пустые каталоги просто не отражены в tar архиве (ровно как и права доступа на все каталоги). Для хранения полного списка каталогов и прав доступа к ним, используется .dir файл, выполненный в виде обычного shell сценария. При восстановлении данных из backup, необходимо не только раскрыть .tar архив, но и выполнить .dir сценарий. ------------------------------------------------------------------------------- Что можите порекомендовать для бэкапа нескольких серверов ? - Выделить старую машину с большим диском под backup-сервер. - Вынести backup-сервер с тех. площадки, рекомендуется в другое здание (например в удаленный офис), на случай пожара, грабежа и других форс-мажорных обстоятельств. Или периодически скидывать бэкапы с backup-сервера на переносной носитель (лента, CDROM и т.д.) и уносить домой. - Рекомендую производить бэкап по FTP, при грамотной организации, не менее безопасно, чем по SSH (при использовании PGP шифрования бэкапа и предотвращении возможности сниффинга), а главное более быстрый и менее ресурсоемкий способ. - На каждом из серверов, с которых будет производится бэкап, разграничить области файловой системы в зависимости от важности и объема данных. Каждую область описать в отдельном файле конфигурации (см. вопросы выше). Для самых важных данных (например, файлы паролей, секретная информация представляющая коммерческую тайну и т.д.), используйте PGP шифрование. Для текстовых данных большого объема и не требующих частого поднятия из бэкапа - используйте gzip сжатие. Если потребность в доступе к данным в бэкапе велика, можно ограничиться обычным tar архивом без сжатия. - Настроить ftp-сервер с доступом только c хостов с которых производится бэкап (например, через /etc/hosts.allow) и закрытым для внешнего мира. В конфигурации ftp сервера запретите выход за пределы домашней директории (/etc/ftpchroot). Дополнительно, через crontab, пропишите еженедельное дублирование резервной копии на бэкап-сервере на соседний диск (резервирование бэкапа). ------------------------------------------------------------------------------- Почему при созданении бэкапа по FTP скрипт бэкапа "зависает" или вываливается по таймауту ? FTP сервер (windows, nowell netware) на первый взгляд работает. Некоторые ftp сревера или настройки фаервола не позволяют использовать активный режим FTP соединения, применяемый по умолчанию. Установите $cfg_remote_ftp_mode=1 в файле конфигурации. ------------------------------------------------------------------------------- Не получается создать бэкап с использованием pgp-шифрования. На удаленной и локальной машине создал\экспортировал\импортировал ключи так, как написано в README на локальной машине (с которой сливается бэкап) gpg --list-secret-key выдает: pub 1024D/06E192F6 2002-08-20 Aleksey sub 1024g/C3750174 2002-08-20 А когда запускаю fsbackup картина следующая: PGP: enabled ...... gpg: backup: skipped: public key not found gpg: [stdin]: encryption failed: public key not found Судя по всему ваш ключ назван "Aleksey", а в файле конфигурации (директива конфигурации $cfg_pgp_userid) в качестве имени публичного ключа указан "backup". Еще одна частая ошибка - забывают заверить публичный ключ (подписать, gpg --sign-key) на машине где производится бэкап. ------------------------------------------------------------------------------- Как посмотреть размер файлов и атрибутов помещенных в архив ? Архив получился слишком большой, нужно выяснить из-за какого файла так вырос размер. db_dump .hash db_dump185 .hash db2_dump .hash ------------------------------------------------------------------------------- Почему в архив не помещаются файлы примонтированных через samba дисков. $File::Find::dont_use_nlink = 1; ------------------------------------------------------------------------------- Можно ли реализовать через fsbackup архив файлов конфигурации. Т.е. бэкапить не раз в день, а допустим проверять раз в 5 минут и если есть изменения делать бэкап отражая в имени файла время изменения, в противном случае ничего не трогать ? Настройте работу в режиме инкрементального бэкапа и укажите заведомо большое число итераций (например, $cfg_increment_level=99999). fsbackup, если нет изменений по сравнению с прошлым инкрементом, сругается, что бэкапить нечего и не будет создавать лишних файлов. ------------------------------------------------------------------------------- Если задать бэкап по /, будут ли помещены в бэкап все примонтированные файловые системы ? Нет, нужно перечислить в конфигурации все точки монитрования. ------------------------------------------------------------------------------- На одной машине невозможно закачать по FTP архив (разбитый на тома по 800Мб) суммарным размером больше 2 Гб. Обновите версию perl модуля Net::FTP. ------------------------------------------------------------------------------- Почему файл с именем /tmp/test/c:\trace_b.txt не помещается в архив, пишет: /bin/tar: tmp/test/c\:\trace_b.txt: Cannot stat: No such file or direct Боюсь, что с этим трудно бороться, \t вполне резонно может быть воспринят как табуляция. Список файлов в tar передается как есть, без экранирования, и уже сам tar разбирая файл со списком принимает решение об экранировании при помещении в архив (что видно на примере экранирования ":"). Нужно почитать спецификацию на тип используемой вами файловой системы, вполне вероятно, что симпол \ не может быть испольщзован в имени файла. ------------------------------------------------------------------------------- fsbackup в сравнении с BackupPC ? Насколько я понимаю, это продукты для разных задач. Задача fsbackup - организовать бэкап только выборочных данных (гибкость задание масок) используя ftp или ssh, а BackupPC - ведение полного архива (прежде всего windows машин) на backup сервере на котором установлено специальное серверное ПО. Для Web-интерфейса BackupPC нужен suidperl, что не безопасно. И главное: fsbackup работает на стороне клиента (отправка с клиента на сервер бэкапа), а BackupPC на стороне сервера (сервер инициирует процесс бэкапа, на клиенте софт не устанавливается (rsync или tar через ssh/rsh/nfs), т.е. получив доустп к серверу бэкапа - автоматически получает полный доступ ко всем клиентам).