Назад | Перейти на главную страницу

Резервное копирование сервера Ubuntu с помощью cron / rsync: проблемы с возобновлением больших файлов

В настоящее время у меня есть выделенный сервер резервного копирования Ubuntu, который ежедневно выходит из режима ожидания (с помощью rtcwake). 5 минут спустя запускается задача cron BASH, использующая rsync для извлечения файлов из различных сетевых расположений. Если этот сценарий BASH завершается, последнее, что он делает, - это переводит сервер в спящий режим до следующего дня (за 5 минут до повторного запуска задания резервного копирования - вы видите картину!).

Существует дополнительное задание cron, которое запускается в 22:45, чтобы «очистить» все запущенные процессы script / rsync, а затем приостановить работу машины до следующего дня.

Моя проблема / вопрос: машина подключена к медленному каналу (беспроводная связь 802.11n) и ей необходимо синхронизировать несколько довольно больших медиафайлов. Я использую такие команды rsync:

rsync -aPvz -e ssh --itemize-changes --modify-window=60 --exclude 'thumbs.db' /source/ /destination/

И в случае, когда rsync не может завершиться за время, пока сервер не спит, я предположил (из-за -P), что он попытается продолжить с того места, где остановился.

На самом деле кажется, что у меня в каталоге есть несколько частичных копий одного и того же файла, но копия никогда не завершается.

Например:

.BigFile.mkv.EJtNSS (4.1GB)
.BigFile.mkv.KSUStW (3.7GB)
.BigFile.mkv.LSewSA (4.3GB)

Кто-нибудь раньше сталкивался с подобным сценарием? Я очень рад все это изменить, если есть программа, которая будет выполнять аналогичную работу (включая обработку сна / пробуждения). Я новичок в написании сценариев BASH, но готов попробовать любые предложения.

Привет, Лоз

Судя по вашему симптому, попытки синхронизации, скорее всего, были незавершенными из-за медленного соединения и последующего прерывания синхронизации. В таком случае --inplace вариант на самом деле является худшим вариантом, поскольку он не предназначен для ситуаций, связанных с сетью. Цитата из --inplace вариант:

ВНИМАНИЕ: данные файла будут в несогласованном состоянии во время передачи (и, возможно, позже, если передача будет прервана) ...

Вы можете захотеть проверить другой пост при синхронизации очень большого файла с помощью rsync. (Подсказка: --append) Кроме того, странно, что --partial указанный вами вариант (-P включает --partial) не берет существующий частичный файл. Информации для определения причины пока недостаточно, но ее можно проверить с помощью более подробного параметра (добавить больше -v).

Добавление --inplace очень поможет с большими файлами. Это ускоряет сбор данных после сбоя или остановки rsync, поскольку не использует временные файлы.