Установка Rsnapshot Filesystem бэкап утилиты на FreeBSD
Какя установить rsnapshot Filesystem утилиту на основе Rsync на моем сервере FreeBSD для резервного копирования локальной/ удаленной Linux и Unix на ПК, сервер и ноутбук?
Rsnapshot Filesystem это на основе Rsync команды. rsnapshot создает периодические снимки локальных машин и синхронизирует на удаленные машины через SSH. Код широко использует жесткие ссылки, когда это возможно, чтобы значительно уменьшить необходимое дисковое пространство. Он полностью написан на Perl без каких-либо зависимостей между модулями, и был протестирован с Perl версии 5.004 и до 5.8.1. В этой статье вы узнаете, как создать на основе FreeBSD сервер резервного копирования, чтобы сохранить резервные копии ежечасно, ежедневно, ежемесячно, ежегодно.
Установите rsnapshot на сервере FreeBSD
Введите следующую команду, чтобы обновить базу данных PKG
1 |
# pkg update |
Для установки бинарного пакета, введите:
1 |
# pkg install rsnapshot |
Или установить его с помощью порта
1 2 |
# cd /usr/ports/sysutils/rsnapshot/ # make install clean |
Настройка rsnapshot на FreeBSD
Во-первых, нужно скопировать /usr/local/etc/rsnapshot.conf.default в /usr/local/etc/rsnapshot.conf, запустите:
1 |
# cp -v /usr/local/etc/rsnapshot.conf.default /usr/local/etc/rsnapshot.conf |
Далее, отредактировать
1 |
# vi /usr/local/etc/rsnapshot.conf |
Обновите и раскомментировать следующие:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# All snapshots will be stored under this root directory. snapshot_root /securebackup/root.user.only/rsnapshot/ ######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### # 6 hourly snapshots - daily (every 4 hour) # 1 daily snapshot - daily # 4 weekly snapshots - weekly (Sunday) # 12 monthly snapshots - 1st day of every month ################################################ retain hourly 6 retain daily 7 retain weekly 4 retain monthly 12 # If you enable this, data will be written to the file you specify. logfile /var/log/rsnapshot # Exclude these files from backups exclude_file /usr/local/etc/rsnapshot.exclude.txt ################################### ### SET BACKUP POINTS / SCRIPTS ### ################################### # LOCALHOST/nas04 Backup our own local freebsd box first backup /home/ nas04/ backup /etc/ nas04/ backup /usr/local/ nas04/ # Okay backup our remote web server called 10.12.249.194 backup root@10.12.249.194:/etc/ wwwserver1/ backup root@10.12.249.194:/root/ wwwserver1/ backup root@10.12.249.194:/home/ wwwserver1/ backup root@10.12.249.194:/scripts/ wwwserver1/ backup root@10.12.249.194:/usr/share/lxc/ wwwserver1/ backup root@10.12.249.194:/lib/ufw/ swwwserver1/ backup root@10.12.249.194:/var/www/ swwwserver1/ # Backup mysql database too backup_script /usr/bin/ssh root@10.12.249.194 "/scripts/mysql/backup.sh" unused1/ backup_script /usr/bin/scp -r root@10.12.249.194:/backups/mysql/nas/ /securebackup/root.user.only/rsnapshot/tmp/ mysql/wwwserver1/ # Backup v.backup2 server too backup root@v.backup2:/root/ backup2/ backup root@v.backup2:/etc/ backup2/ backup root@v.backup2:/var/www/ backup2/ |
Установите MySQL сценарий резервного копирования на удаленном сервере 10.12.249.194
Создайте сценарий, /scripts/mysql/backup.sh на вашем сервере MySQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#!/bin/bash # Name: backup.sh # Purpose: Backup mysql databases for rsnapshot # Tested on: RHEL/CentOS/Debian/Ubuntu only # --------------------------------------------------------- MUSER='YOUR-USERNAME-HERE' MPASS='YOUR-PASSWORD-HERE' MHOST='YOUR-HOSTNAME-HERE' DEST="/backups/mysql/nas" NOWFORMAT="%m_%d_%Y_%H_%M_%S%P" MYSQL="/usr/bin/mysql" MYSQLDUMP="/usr/bin/mysqldump" MKDIR="/bin/mkdir" RM="/bin/rm" GZIP="/bin/gzip" DATE="/bin/date" SED="/bin/sed" [ ! -d "$DEST" ] && $MKDIR -p "$DEST" DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" DBS="$($SED -e 's/performance_schema//' -e 's/information_schema//' <<< $DBS)" $RM -f $DEST/* > /dev/null 2>&1 for db in $DBS do tTime=$(date +"${NOWFORMAT}") FILE="$DEST/${db}.${tTime}.gz" $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE done |
Установите keychain на FreeBSD сервер
Введите следующую команду, чтобы установить клиента SSH-агент для входа на удаленный сервер:
1 |
# pkg install keychain |
Добавляет следующие записи в стартовый файл оболочки. Я использую по умолчанию CSH на моем FreeBSD:
1 2 |
echo '/usr/local/bin/keychain --clear $HOME/.ssh/id_rsa' >> /root/.cshrc echo 'source $HOME/.keychain/webserver-csh' >>/root/.cshrc |
Установка и настройка SSH ключей FreeBSD
Вы должны установить открытый ключ аутентификации и использовать keychain для управления ключами:
1 |
# ssh-keygen -t rsa |
1 2 3 4 5 6 7 8 9 10 |
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): {ENTER-YOUR-PASSPHRASE-HERE} Enter same passphrase again: {again-ENTER-YOUR-PASSPHRASE-HERE} Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 5b:74:30:c8:4a:10:78:a3:eb:ce:bd:ee:87:40:82:7f root@webserver The key's randomart image is: |
Вам нужно установить местоположение и имя пары ключей. Я рекомендую вам использовать место по умолчанию, например: $HOME/.ssh/id_rsa. Вам будет предложено, поставить фразу (пароль) для вашего секретного ключа. Установите открытый ключ на удаленном сервере называется v.backup2 и 10.12.249.194. Во-первых, установить ssh-copy-id — небольшой скрипт, который копирует свой SSH с открытым ключом на удаленный хост, выполните:
1 |
# pkg install ssh-copy-id |
Теперь установите публичный ключ
1 2 |
# ssh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected] # ssh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected] |
Проверьте конфигурацию на FreeBSD
Введите следующую команду:
1 2 |
# rsnapshot configtest # rsnapshot -c /usr/local/etc/rsnapshot.conf configtest |
Вы можете увидеть команды, которые будут выполнены по этой утилите:
1 2 3 4 |
# rsnapshot -t hourly # rsnapshot -t daily # rsnapshot -t weekly # rsnapshot -t monthly |
Запустите rsnapshot и сделать свои первые резервные копии на FreeBSD
Введите следующую команду, чтобы сделать резервную копию почасовой:
1 |
# rsnapshot -v hourly |
Настройка cron для запуска резервных копий на FreeBSD
1 |
# crontab -e |
Добавьте следующие команды:
1 2 3 4 5 |
30 */4 * * * root /usr/local/bin/rsnapshot hourly 40 21 * * * root /usr/local/bin/rsnapshot daily 20 22 * * 6 root /usr/local/bin/rsnapshot weekly 10 23 1 * * root /usr/local/bin/rsnapshot monthly |
Как восстановить резервные копии?
Допустим, вы хотите восстановить резервную копию для wwwserver1. Введите команду следующим образом (выберите день и дату с LS -l ):
1 2 3 4 5 6 7 8 9 10 |
############################# # Login to your FreeBSD server # # cd to backup location # # Select hourly, weekly etc # # scp or rsync to destination # ################################### # cd /securebackup/root.user.only/rsnapshot/ # ls -l # cd hourly.0/wwwserver1/ # scp -r var/www/ [email protected]:/var/www/ |
Если Вам необходимо настроить резервное копирование на Linux Unix FreeBSD системы обращайтесь [email protected]