==================== На клиентской машине ==================== 1. Отредактировать /etc/ssh/sshd_config (для CentOS не требуется): --------------------------------------------------------------- PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitEmptyPasswords no 1а. Перезапустить службу (для CentOS не требуется): ----------------------------------------------- /etc/rc.d/sshd restart 2. Добавить пользователя и группу (без пароля): -------------------------------------------- -- для FreeBSD: pw groupadd backup -g 999 pw useradd backup -u 999 -c "Backup User" -g backup -d /usr/home/backup -s /bin/sh -m -- для CentOS: groupadd backup -g 888 useradd backup -u 888 -c "Backup User" -g backup -d /home/backup -s /bin/bash -m 3. Отредактировать etc/sudoers, добавить: -------------------------------------- -- для FreeBSD: backup ALL = NOPASSWD: /usr/local/bin/rsync -- для CentOS: backup ALL = NOPASSWD: /usr/bin/rsync 4. Создать ключевую пару: ---------------------- su backup -- для FreeBSD: cd /usr/home/backup -- для CentOS: cd /home/backup ssh-keygen -t dsa -m pem -b 1024 -f key --- либо: ssh-keygen -b 1024 -f key mkdir .ssh mv key.pub .ssh/authorized_keys chmod 700 .ssh chmod 600 .ssh/authorized_keys =================== На сервере BackupPC =================== 1. Создать базу закрытых ключей: ----------------------------- Переместить файл с КЛИЕНТА из home/backup/key на СЕРВЕР в папку ./.ssh под именем КЛИЕНТА. cd /home/backuppc chown -R backuppc:backuppc .ssh chmod -R 600 .ssh chmod 700 .ssh 2. После создания узла на BackupPC, изменить строки запуска (RsyncClientCmd, RsyncClientRestoreCmd): ------------------------------------------------------------------------------------------------- -- для FreeBSD: RsyncClientPath: /usr/local/bin/rsync RsyncClientCmd && RsyncClientRestoreCmd: $sshPath -o StrictHostKeyChecking=no -i /home/backuppc/.ssh/$host -l backup $host /usr/local/bin/sudo $rsyncPath $argList+ -- для CentOS: RsyncClientPath: /usr/bin/rsync RsyncClientCmd && RsyncClientRestoreCmd: $sshPath -o StrictHostKeyChecking=no -i /home/backuppc/.ssh/$host -l backup $host /usr/bin/sudo $rsyncPath $argList+ 3. Тест ssh -i /home/backuppc/.ssh/HOST_NAME -l backuppc HOST_NAME -p 22 pwd ======================== Особенности планировщика ======================== Сервер: ------- WakeupShedule - время (часы), в которое BackupPC будет проводить бекап Планировщик: ------------ FullPeriod - интервал создания полного архива в сутках (по-умолчанию 6.97 - раз в неделю) FullKeepCnt — сколько полных бекапов необходимо хранить FullKeepCntMin — минимальное количество хранимых полных бекапов FullKeepCnt - количество сохраняемых полных архивов (по-умолчанию 1) FullAgeMax - максимальный срок хранения полного архива Если указать в FullKeepCnt значение "4, 0, 6", будет храниться 4 последних полных бекапа (по одному в неделю) и 6 последних полных бекапа из каждого месяца (т.е. по 1 последнему полному бекапу в течение 6 месяцев). Если необходимо, чтобы хранились все эти копии, следует также указать значение 180 (дней, 6 месяцев) в переменной FullAgeMax. IncrPeriod - периодичность создания инкриментарных архивов в сутках (по-умолчанию 0.97 - раз в сутки) IncrKeepCnt - количество сохраняемых инкриментарных архивов IncrKeepCntMin — минимальное количество хранимых инкрементальных бекапов IncrAgeMax — максимальный возраст хранимого инкрементального бекапа IncrLevels — уровень инкрементального бекапа IncrFill — использовать в системе хард-линки, что бы инкрементальный бекап выглядел полным (не рекомендуется включать) В переменной IncrLevels рекомендуется указать "1, 2, 3, 4, 5, 6", это позволит избежать повторений файлов в инкрементных копиях в течение 6 дней. Принцип задания уровней в IncrLevels аналогичен принципу, используемого в команде dump(1). Подробнее тут: http://www.nncron.ru/nnbackup/help/RU/working/modes/dump.htm На вопрос, целесобразно ли использовать сложные алгоритмы уровней типа "Ханойская башня" и т.п. - однозначно ответить нельзя. Все-таки предполагается использование жесткого диска в качестве носителя бекапов, а не сменных лент. Перерыв: -------- BlackoutGoodCnt - количество пакетов ping, успешно принятых от хоста перед бэкапом (лучше поставить 1). BlackoutPeriods - время, в которое архивы делать нельзя. См. ниже примеры: $Conf{BlackoutPeriods} = [ { hourBegin => 7.0, hourEnd => 19.5, weekDays => [1, 2, 3, 4, 5], }, ]; (нельзя делать архивы с 7.00 до 19.30 в рабочие дни) $Conf{BlackoutPeriods} = [ { hourBegin => 7.0, hourEnd => 19.5, weekDays => [1, 2, 3, 4, 5], }, { hourBegin => 23, hourEnd => 5, weekDays => [5, 6], }, ]; (нельзя делать архивы с 7.00 до 19.30 в рабочие дни, а также с 23.00 до 5.00 в пятницу и субботу) Исключения: ----------- По поводу исключений для smb-ресурсов читать тут http://adsm.org/lists/html/BackupPC-users/2010-09/msg00171.html См. ниже примеры: $Conf{BackupFilesExclude} = { '*' => [ '\\\\Application Data', '\\\\RECYCLER', '\\\\System Volume Information', '\\Documents\\\\My Music', '\\Downloads\\big_files\\\\debian_install_dvd.iso '\\\\ntuser.dat.LOG1', '*\\Logs\\*', '*.lock', '*\\Thumbs.db', '*\\.*' ] };