У меня есть 700K+ .jpg файлы на моем linux-сервере в двухуровневой структуре с 6000+ каталогами на уровне 1 и отдельными файлами .jpg, распределенными среди этих каталогов на уровне 2. Эти файлы занимают 16 ГБ в соответствии с du -ch | grep total . На диске имеется 3,5 ГБ свободного места.

Я ищу разумный способ скопировать эти файлы на компьютер с Windows и регулярно обновлять копию Windows новыми файлами с сервера Linux.

Я пробовал FileZilla, но он справлялся с ~ 100K файлами в час, при этом средняя загрузка на сервере linux составляла около 2. Это слишком медленно и требует слишком много ресурсов. С 10 подключениями FileZilla обошелся всего в ~ 150 КБ / с на линии 100 Мбит / с.

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

1 ответ1

2

Я могу придумать два способа сделать это, которые должны работать для вас:

Ручное решение

Используйте rsync через общий доступ к файлам SMB. Предоставьте общий доступ к папке с вашего компьютера Windows, а затем смонтируйте ее под Linux, используя SMBfs. Затем вы можете использовать rsync для передачи файлов через:

rsync -av /path/to/source/directory /path/to/mounted/destination/folder

Самое замечательное в rsync состоит в том, что если передача файла прервана, вы можете снова запустить команду rsync, и она быстро пропустит все файлы, которые уже были переданы.

Автоматическое решение

Используйте BitTorrent Sync. Установите BitTorrent Sync на компьютерах с Windows и Linux. Затем вы можете добавить папку с изображениями на компьютере с Linux и поделиться ею с вашим компьютером с Windows, скопировав ключ папки. BitTorrent Sync автоматически обеспечит синхронизацию двух местоположений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .