Как вы будете делать резервное копирование удаленного Vbu Ubuntu через SSH?

Итак, как я уже сказал, у меня есть VPS, Raspberry Pi и план, но мне нужен какой-то совет, так что дальше.

У меня есть VPS с prgmr.com, с которым я работаю хорошо и без проблем. У меня также есть новый RaspberryPi, сидящий на моем столе, с загрузкой Raspberrian, когда я печатаю. Я планирую использовать Raspberry Pi в качестве резервного сервера у себя дома, поэтому у меня такой вопрос:

Как вы будете выполнять резервное копирование удаленного Vbu Ubuntu через SSH?

VPS настроен как веб-сервер, но я хотел бы настроить задание cron на Pi, чтобы он мог автоматически входить в VPS и запускать, а затем загружать резервную копию, только в случае, если мне удастся сделать это или что-то еще происходит, что приводит к потере данных. Естественно, я хочу, чтобы эта резервная копия содержала все, чтобы я мог быстро восстановить весь сервер, все прекрасно настроено, как сейчас, если что-то пойдет не так.

Как бы вы запустили резервное копирование такого рода? Я подумал, что мне придется написать какой-нибудь bash-скрипт для SSH, сжать все соответствующие файлы в tar.gz или аналогичный и загрузить изображения с помощью SCP.

Что вы думаете об этом? Какие пакеты и т. Д. Вы бы использовали, и как бы вы это настроили? На VPS есть стек LAMP, так какие файлы вы бы хотели скопировать? Он также имеет множество других небольших программ, таких как GIT и ZendTools.

4
задан 3 October 2013 в 01:36

1 ответ

Аутентификация открытого ключа SSH

Первой вещью, которую Вы хотите сделать, является запуск с ssh аутентификацией с открытым ключом. Это позволит Вашему сценарию использовать SSH без пароля.

Все, в чем нуждается сервер, является SSH установленная, и аутентификация с открытым ключом, настроенная для пользователя, который будет запускать резервный скрипт от RasPi.

Вот хорошее учебное руководство для аутентификации с открытым ключом: https://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html

Опция 1: SSH и Tar

Можно сжать tar.gz с сервера и передать его непосредственно по ssh с чем-то вроде этого:

ssh root@remoteserver.example.com "tar -czvf - / 2> /var/log/sshbackup" > vpsbackup.tar.gz

Это сделает tar VPS и gzip всеми файлами на / и передаст его по SSH для хранения в vpsbackup.tar.gz на RasPi. Журнал нового резервного копирования будет сохранен/var/log/sshbackup на VPS.

Опция 2: Rsync

Отправка всего .tar.gz по SSH неэффективна... Файлы, которые не изменяются, будут все еще переданы. Лучшее решение состоит в том, чтобы использовать rsync, но это мешает делать .tar.gz, который сохраняет полномочия. Если у Вас есть достаточно пространства памяти на RasPi, можно просто хранить файлы резервных копий как простые файлы. Затем у Вас может быть сценарий tar.gz их, если Вы хотите сохранить несколько прошлых резервных копий.

Серверу нужен установленный rsync. Это будет работать на основе SSH, таким образом, Вы все еще будете использовать аутентификацию с открытым ключом и сохраняете шифрование. Необходимо будет выполнить эту команду как корень и иметь аутентификацию с открытым ключом, и логины SSH для корня включили для сохранения полномочий. Ваше место назначения (или по крайней мере временное место назначения) должны быть файловой системой Linux. При хранении этих резервных копий на FAT или разделе NTFS (например, на большинстве внешних жестких дисков), можно сделать петлевую файловую систему (см. http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/) для временного хранения. tar.gz файл может храниться на любом разделе, потому что он сохраняет полномочия самостоятельно.

Пример rsync команда:

rsync -a --delete --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/tmp remoteserver.example.com:/ /path/to/backup/destination/

будьте осторожны, когда использование - удаляет, тем более, что корень! Это удалит любые файлы в целевом каталоге, которые не существуют на источнике резервной копии. Необходимо только использовать - удаляют при синхронизации к специализированному резервному каталогу, используемому только для этого VPS. Необходимо также удостовериться, что нет никакой возможности синхронизации сценария неправильному месту назначения (например, если/path/to/backup/destination определяется переменной оболочки),

rsync только передаст файлы, которые отличаются между источником и местом назначения. Если у Вас будут большие файлы, то это также только передаст части файла, которые изменились (для этого для работы, необходимо добавить флаг-c). Это означает использование минимальной пропускной способности но она будет использовать больше ЦП и замедлять пересинхронизирующие времена для подготовки, поскольку обе стороны должны в первые файлы контрольной суммы определить который блоки передать. Если Вы действительно используете флаг-c, и Вы имеете большие файлы (такие как файлы базы данных) и/или облупленное соединение, полагаете, что добавление - неравнодушный - добавляет, который позволяет Вам возобновить передачи после того, как соединение прервано.

5
ответ дан 3 October 2013 в 01:36

Другие вопросы по тегам:

Похожие вопросы: