Резервное копирование файлов с сервера (статический IP) на домашний сервер (динамический IP)

Резервное копирование файлов с сервера (статический IP) на домашний сервер (динамический IP)

Я уже знаком с ними и использую rsync, scp-передачи, tar, 7z и т. д., однако ни один из них не решает проблему резервного копирования, которую я намерен выполнять достаточно регулярно.

У меня есть удаленный сервер с 80% занятого пространства на 100 ГБ SSD, с которого я хотел бы сделать резервную копию. На сервере более 10 000 небольших файлов, поэтому поможет базовый tarball или какое-то промежуточное сжатие (вроде rsync -z).

У меня дома есть сервер, на который я хотел бы выполнять резервное копирование, но он использует динамический IP-адрес.

Проблема в том, чтобы использоватьrsync-zилиscp и tar (через канал)Это нужно сделать на удаленном сервере, но этот сервер не видит мой домашний сервер, так как у него динамический IP-адрес.

Поэтому я могу выполнять только команды на своем домашнем сервере, например:scp пользователь@удаленныйсервер:/файлы/для/резервной/копии /home/user/backupsно он не может использовать сжатие, поэтому передача огромного количества файлов занимает очень много времени.

Есть ли более быстрый способ?

P.S. Мне не нужно хранить права доступа к файлам и т.п., как это делает tarball.

Редактировать: Из-за ограниченного места на удаленном сервере я не могу сделать tarball там и загрузить на домашний сервер. Поэтому это должно быть в реальном времени.

решение1

Почему нельзя использовать инициировать rsyncиз резервной цели? Нет никаких неотъемлемых ограничений, rsyncкоторые бы это предотвратили. Запуск

rsync -avz [email protected]:/data /backupdir 

на целевом сервере резервного копирования (домашнем сервере) должно быть сделано именно это.

решение2

Существует множество вариантов. Самый простой — просто добавить команду -C в SSH или что-то в этом роде, что включит сжатие для ссылки.

Более сложным (и быстрым, будьте уверены в большом количестве маленьких файлов и задержке) решением было бы отказаться от scp и использовать канал для сжатия данных на лету. Что-то вроде tar -cz /path/to/backup | SSH user@remote "cd /path; tar -xz" сожмет и распакует файлы, используя сжатие gzip. Конечно, ничто не мешает вам использовать другую команду после ssh, если, например, вы просто хотите сохранить сжатый файл, вы можете использовать "cat > /path/to/file.tar.gz" вместо этого.

Мне непонятно, почему вы здесь говорите о динамических IP. Если это создает проблему, вы можете использовать динамический DNS или настроить VPN с сервером на статическом или инициировать pull с динамического IP вместо push со статического.

Связанный контент