LINUX.ORG.RU

Как передать большой файл с Линукса на Линукс?

 , , ,


1

2

Есть 2 сервера Линукс. Они могут общаться между собой по глобальной сети Интернет (они не в одной локальной сети).

Мне нужно с первого сервера на второй перекинуть 50 Гб картинок. Я сначала упаковал картинки в 1 архив (весит около 50 Гб). На первом сервере закинул этот архив в папку, на которую «смотрит» nginx.

И на втором сервере делаю так: wget https://сервер1/мой-архив.tar

Но закачка по непонятным мне причинам постоянно обрывалась. Ну, типа пропадает связь. Скачалось 2 Гб – бах, wget reconnect. (Почему оно обрывается ? Как диагностику сделать и найти причину?) Ну, так 10 попыток реконнекта было. На каждой попытке докачивался по чуть-чуть архив. И весь архив таки не скачался – почти 10 Гб из 50 Гб скачалось.

Тогда я разбил архив на части по 5 Гб – и качаю по 5 Гб. Реконнекты тоже есть, но так вроде проще.

Кароч.

  1. Как лучше передавать файлы с сервера на сервер?
  2. Почему wget реконнектится (почему связь обрывается)?
Ответ на: комментарий от truebin

И некоторые разы было такое, что сервер-источник перестал отвечать по ssh

Возможно там проблемы с железом, а конкретно с диском. Проверь на источнике, читается ли нормально файл (dd if=file.tgz of=/dev/null status=progress).

А ещё попробуй во время скачивания запустить top и dmesg -TW на источнике (в разных окнах) и смотреть в него - возможно перед зависанием там будет что-то интересное.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от truebin

Проверь на обоих хостах через speedtest. От wget, конечно, не должна «ложиться машина», но некоторые сетевухи требуют настройки для возможности передачи данных с нормальной скоростью.

allter149
()
Последнее исправление: allter149 (всего исправлений: 1)

rsync умеет в туннелирование через ssh.

rsync -avPhcze ssh photos/ user@myserver:photos/

Флаг -z на своё усмотрение, если там жопеги, то вряд ли даст какой-то прирост. Флаг -c проверяет по чексумме, для того, чтобы гарантировать целостность и что на том конце действительно один и тот же файл.

Желательно запускать в каком-нибудь tmux или screen, если удалённо, чтобы потом можно было посмотреть прогресс.

Этим ещё «диды» пользовались.

Щас наверное моднее использовать какой-нибудь rclone.

egzakharovich
()
Ответ на: комментарий от truebin

Эту опцию я запомнил. Но. Мне надо будет еще несколько раз синхронизировать файлы на серверах. Я просто думал, что есть более быстрые способы простого копирования файлов (не rsync’ом) – для начала.

Ну тут я не знаю, подымать целый nginx ради передачи файлов, это как лечить гланды через жопу. Не запрещено, конечно, но странно.

А rsync через ssh, он и в Африке rsync. Если он стоит на обеих сторонах и налажен ssh, то это дело одной команды.

egzakharovich
()
Ответ на: комментарий от egzakharovich

Та я не подымал nginx. На сервере-источнике запущен сайт. И мне надо выкачать фотки сайта на другой сервер.

Я уже воспользовался rsync – очень хорошо все прошло. Всем спасибо, братья.

truebin
() автор топика
Последнее исправление: truebin (всего исправлений: 1)
Ответ на: комментарий от mx__

Если ты имеешь ввиду запустить второй sshd в чруте специально для scp-клиентов, то так можно, да, но это опять лишняя морока, в которой новички могут что-то запороть, и опять непонятно ради чего это всё.

firkax ★★★★★
()

а какая цель? я делаю инкрементальный бэкап и передаю по ssh по ключу.

duplicity incremental --exclude-filelist ./filelist /var/www/dirtobesend sftp://user@ip:22//var/mybackup/tofolder --no-encryption --verbosity=info

jura12 ★★
()
Ответ на: комментарий от mx__

То есть 22-й (или другой) порт им открыт. А я писал про то, что в целях безопасности лучше даже коннектиться к нему не давать никому кроме белого списка адресов, на которых может быть твой клиентский админский комп. Да, это не прям критически важная мера, но лучше с ней чем без неё.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

… легко, за несколько минут установи уже VSFTPD-сервер и сертификаты.

Пользуйся по выбору протоколами ftp или ftpes - порт 21.

или:

по протоколу ftps - порт 990.

или:

по протоколу sftp - порт 22.

как пример:

http://togusak.ddnss.de/vsftpd/index.html

… если что - подкрути vsftp.conf на свой вкус!

:-)))

demo13
()

Кстати, сегодня понадобилось забрать гигантский PowerBI файл на 1,5Гб от коллеги. Поднял vsftpd, настроил, открыл порты на роутере, кинул коллеге ссылку (у него windows), принял файл, закрыл порты на роутере. Очень быстро, просто и легко.

Shadow ★★★★★
()
Ответ на: комментарий от mx__

Не вижу связи. То, что фтп юзеру не надо давать шелл это и так очевидно. Речь была про другое - а именно не давать вообще взаимодействовать с sshd никаким способом. То есть чтобы даже украденные рут-ключи или ещё какая авторизация полноправного юзера не давали возможность подключаться, если ты заодно айпи себе не украл. Ну и уязвимости в sshd (ДО логина) тоже не исключены, хоть это и, по сравнению с окружающей помойкой, очень безопасная штука.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от firkax

Я ftp с юности умею поднимать: там поставить и прописать параметры по вкусу. Городить wsgi/cgi/модули апача и nginx не хочу. И писать веб-сервис сам тоже не хочу. И гуглить готовые. А ftp в Винде в explorer.exe по ссылке открывается как шара.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 2)

Скачалось 2 Гб – бах, wget reconnect

Навевает на подозрения что где-то 32-битное число переполнилось. Я б скачивалку другую попробовал, можно даже самописную, вдруг сработает. Заодно и диагностику можно сделать. Возможно ещё проблемы с провайдером.

neumond
()
Ответ на: комментарий от Shadow

У меня, когда ещё работал dyndns.org, была на постоянной основе форма http://домен.dyndns.org:порт/upload/ куда я просто давал ссылку тем, кто хотел мне что-то прислать, безо всяких доп настроек и дроча, как на моей стороне, так и на их (разбираться с непривычными функциями или прогами). Её «реализация» это меньше 10 строк на пхп, если что. Потом dyndns закрылся, я на это забил т.к. нужда в приёме файлов как-то отпала уже. Хотя иногда ещё айпи-адрес проверял и давал. Сейчас можно уже на статическом сделать но наверно незачем.

А ты, судя по твоему предыдущему сообщению, на каждый принимаемый файл заново настраиваешь и запускаешь vsftpd, зачем это делать я не знаю.

firkax ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Тут попрошу, я дома примерно вместо чизкейка себе бутеры с сыром и вареньем и делаю. Вернее, последние пару лет не делаю, т.к. сладкое не очень.

А автор вопроса хочет передать, хм, и правда что-то довольно большое.

Я бы ему порекомендовал сплитнуть файл на много кусков и воспользоваться scp, но вариантов накидали еще разных =)

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

lealxe
()
Ответ на: комментарий от posixbit

Пока мне не покажут как мне переливать файл с сервера1 на сервер2 командуя с клиента со станции1, все эти протоколы (аля http) используемые для передачи файлов я считаю хайпом.

mx__ ★★★★★
()
Ответ на: комментарий от ox55ff

Шифрование все равно оверхед огромный. Хотя у меня процессор гораздо новее Pentium 3, у многих Pentium 3 просто работает, тем более, в нем нет дыр.

anonymous
()
Ответ на: комментарий от anonymous

И что? Причём тут локалка, ты тему то прочёл? Во-вторых, незачем приобретать плохие привычки даже во вроде бы безопасной локалке.

Использовать в локалке нешифрованное http - более-менее норм, потому что когда тебе понадобится https, окажется что почти весь http-софт его тоже поддерживает практически без переучивания.

С ftp же ситуация другая, переход с ftp на sftp практически всегда сильно заметен в плане действий, которые нужно для этого предпринять. Поэтому незачем приучать себя к тому, чему всё равно потребуется искать замену.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от anonymous

Хотел сказать, иногда задирают все эти приложения передачи файлов между тобой и клиентом. Всяки протоколы удаленного доступа и прочего. Если у клиента винда, то просто с тоталкомандера его передаю файлы на свой фтп сервер и обратно. Простенько и со вкусом как грил О. Бендер.

anonymous
()

Если это разово, то использую для таких случаев netcat. Под линуксом его как правило даже ставить не надо. На стороне сервера запускаем

nc -lp 64555 < мой-архив.tar

На стороне клиента

nc сервер1 64555 > мой-архив.tar
keeper_b ★★★★★
()