Связаться по:
vkarabedyants Telegram Viber
+7 (499) 350-10-69

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Установка 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

# pkg update

Для установки бинарного пакета, введите:

# pkg install rsnapshot

 pkg-install-rsnapshot

Или установить его с помощью порта

# cd /usr/ports/sysutils/rsnapshot/
# make install clean

Настройка rsnapshot на FreeBSD

Во-первых, нужно скопировать /usr/local/etc/rsnapshot.conf.default в /usr/local/etc/rsnapshot.conf, запустите:

# cp -v /usr/local/etc/rsnapshot.conf.default /usr/local/etc/rsnapshot.conf

Далее, отредактировать

# vi /usr/local/etc/rsnapshot.conf

Обновите и раскомментировать следующие:

# 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  [email protected]:/etc/        wwwserver1/
backup  [email protected]:/root/       wwwserver1/
backup  [email protected]:/home/       wwwserver1/
backup  [email protected]:/scripts/    wwwserver1/
backup  [email protected]:/usr/share/lxc/      wwwserver1/
backup  [email protected]:/lib/ufw/    swwwserver1/
backup  [email protected]:/var/www/    swwwserver1/

# Backup mysql database too
backup_script   /usr/bin/ssh [email protected] "/scripts/mysql/backup.sh"        unused1/
backup_script   /usr/bin/scp -r [email protected]:/backups/mysql/nas/ /securebackup/root.user.only/rsnapshot/tmp/    mysql/wwwserver1/

# Backup v.backup2 server too
backup  [email protected]:/root/   backup2/
backup  [email protected]:/etc/    backup2/
backup  [email protected]:/var/www/    backup2/

Установите MySQL сценарий резервного копирования на удаленном сервере 10.12.249.194

Создайте сценарий, /scripts/mysql/backup.sh на вашем сервере MySQL:

#!/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-агент для входа на удаленный сервер:

# pkg install keychain

Добавляет следующие записи в стартовый файл оболочки. Я использую по умолчанию CSH на моем FreeBSD:

echo '/usr/local/bin/keychain --clear $HOME/.ssh/id_rsa' >> /root/.cshrc
echo 'source $HOME/.keychain/webserver-csh' >>/root/.cshrc

Установка и настройка SSH ключей FreeBSD

Вы должны установить открытый ключ аутентификации и использовать keychain для управления ключами:

# ssh-keygen -t rsa
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 [email protected]
The key's randomart image is:

Вам нужно установить местоположение и имя пары ключей. Я рекомендую вам использовать место по умолчанию, например: $HOME/.ssh/id_rsa. Вам будет предложено, поставить фразу (пароль) для вашего секретного ключа. Установите открытый ключ на удаленном сервере называется v.backup2 и 10.12.249.194. Во-первых, установить ssh-copy-id — небольшой скрипт, который копирует свой ​​SSH с открытым ключом на удаленный хост, выполните:

# pkg install ssh-copy-id

Теперь установите публичный ключ

# ssh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]
# ssh-copy-id -i $HOME/.ssh/id_rsa.pub [email protected]

Проверьте конфигурацию на FreeBSD

Введите следующую команду:

# rsnapshot configtest
# rsnapshot -c /usr/local/etc/rsnapshot.conf configtest

Вы можете увидеть команды, которые будут выполнены по этой утилите:

# rsnapshot -t hourly
# rsnapshot -t daily
# rsnapshot -t weekly
# rsnapshot -t monthly

Запустите rsnapshot и сделать свои первые резервные копии на FreeBSD
Введите следующую команду, чтобы сделать резервную копию почасовой:

# rsnapshot -v hourly

Настройка cron для запуска резервных копий на FreeBSD

# crontab -e

Добавьте следующие команды:

 
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 ):

#############################
# 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]

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.