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 реконнектится (почему связь обрывается)?
Ответ на: комментарий от ox55ff

scp … ?

А wget чем хуже? Ты не подскажешь, чем мой способ хуже? Я хотел бы понять.

Понятно. Я гуглил. Но в интернете я не находил подробной информации. Мне кажется, есть вещи, которые только на опыте можно узнать. Вот я и решил спросить тут вопрос. Ведь способов передачи файлов между серверами много: scp, nc, wget, rsync, curl, ...

Есть ли самые быстрые по скорости?

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

Но нужно понимать, что ты с ним делаешь.

В смысле? Что понимать? Чувак, ответь. И к чему твоя реакция «рукалицо» ? Ты уверен, что понимаешь полностью, как работают все scp, rsync, ...

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

Почему оно обрывается ? Как диагностику сделать и найти причину?

Тому может быть множество причин. Для начала следует посмотреть логи nginx.

P.S. Но, вообще, для таких задач следует использовать rsync.

P.P.S. В случае rsync шаг со сборкой тарбола — лишний.

ugoday ★★★★★
()

Я обычно sshfs монтирую и передаю. Но можно и просто scp.

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

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

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

Про wget -c уже ответили.

Почему оно обрывается ? Как диагностику сделать и найти причину?

Видимо проблемы с интернетом у одного из серверов. Проверяй потери пакетов итд. (если интересно).

Есть ли самые быстрые по скорости?

Выбранный тобой способ через https, наверно, чуточку медленнее передачи без шифрования, но разница совсем маленькая и очевидно не стоит того, чтобы подвергать себя опасности перехвата или подмены данных каким-то злоумышленником посередине. А по удобству https думаю самый удобный из обычных способов.

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

Чтобы использовать sshfs/scp, на одном из серверов должен быть открыт ssh-порт для другого. Такая конфигурация, хотя и в целом допустима, но

1) немного ухудшает безопасность (более безопасно открывать ssh только для адресов, на которых может находиться твой проверенный клиентский комп)

2) требует дополнительной настройки, в ходе которой новички могут ошибиться и испортить безопасность ещё хуже; например, не просто открыв доступ бесправному юзеру, могущему только сохранить строго себе в chroot-home файл, а открыв root-а потому что иначе «непонятные ошибки с permission denied»)

firkax ★★★★★
()

Делаю так (и по http в т.ч.) уже много лет и всё нормально качается.

Почему wget реконнектится (почему связь обрывается)?

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

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

Потеря пакетов к обрыву соединения отношения не имеет. TCP передаёт потерянные пакеты повторно и это приведёт лишь к снижению скорости передачи.

Неожиданный обрыв соединения происходит, когда какой-то промежуточный узел вставляет пакет TCP RESET. Это не потеря пакетов, это намеренное вредительство. Разновидность атаки посредника.

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

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

$ soh -p 5555 -s /home/pro/1234
Searching for avaliable utils... done.
Indexing /home/pro/1234... dirSkipDots: Missing dots in 1
done.
Total size 4.00 KiB
ShareID: 1746782856
http://127.0.0.1:5555/1746782856/shareinfo
Listening 5555 TCP...
>>> method: GET, uri: /1746782856/shareinfo, protocol: HTTP/1.1
<<< 200 OK.
>>> method: GET, uri: /1746782856/nodeinfo/0, protocol: HTTP/1.1
<<< 200 OK.
>>> Parse HTTP method error: Connection timed out
>>> Parse HTTP method error: Connection timed out
>>> Parse HTTP method error: Connection timed out
>>> Parse HTTP method error: Connection timed out
irton ★★★★★
()
Последнее исправление: irton (всего исправлений: 1)
Ответ на: комментарий от Shadow

Причём тут чрут? У тебя данные посередине украдут или подменят. И я бы ещё частично понял, если бы ты шёл на эту жертву ради удобства какого-то, но нет же, у автора уже есть работающее, пригодное и удобное https, а ты хочешь чтобы он производил какую-то дополнительную возню ради того, чтобы получить небезопасный протокол.

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

Теоретики такие теоретики. Учи теорию лучше. Потери пакетов могут приводить к обрыву. Да, RST там будет, но его вставит не кто-то посередине, а один из хостов, когда из-за потерь выйдет таймаут. И это не какая-то мифическая ситуация, а при плохой связи такое (с дефолтными настройками сетевого стека) происходит регулярно.

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

содержимое 1234 показывает что пусто

Потом попробую починить, если лениво не будет. Если не секретно, то выхлоп ls -la /home/pro/1234 не помешает.

Connection timed out

Это ожидаемо. Некоторые браузеры пытаются заранее открывать соединение, а soh сбрасывает соединение из-за неактивности.

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

scp … ?

У меня однажды scp упал при копировании архива бэкапа ~35GiB, по проводной домашней локалке. С тех пор, больше доверяю rsync. Последний не падал ещё ни разу.

Есть ли самые быстрые по скорости?

В принципе - безразлично. В большинстве случаев, всё упрётся в скорость сети. Если сеть быстрая, то в скорость дисковой подсистемы. Накладные расходы во всех случаях, кроме случая передачи файлов в Base64, будут примерно одинаковы.

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

Я уже удалил каталог, но в нем был один tar архив и 4 файла .jpg

Права доступа юзера, от которого запущен soh (не думаю что soh от root надо запускать)

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

Лишняя трата ресурсов и времени, лучше сразу копировать через scp/rsync

Для картинок - да. А вот если нужно сохранить права доступа, то лучше завернуть в архив.

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

Понятно. Я по сорцам бегло глянул. Похоже, что код ожидает, что в каждом каталоге первым делом идут «.» и «..». Судя по всему, иногда это не так, поэтому у тебя индексатор вернул ошибку, ничего не проиндексировав. Отсюда и пустой каталог.

Потом чуть перепишу логику, если лениво не будет.

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

не думаю что soh от root надо запускать

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

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

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

Ну, и хотелось спросить посетителей ЛОРа по теме. И еще: У меня от wget тупо ложится машина. Я не знаю, почему. Вот на сервере-источнике я закинул архив с файлами, который надо скачать. Скачиваю wget’ом на сервере-приемнике этот архив – происходит обрыв соединения. И некоторые разы было такое, что сервер-источник перестал отвечать по ssh. Вообще перестал отвечать по всем параметрам. Сайт перестал открываться (на сервере-источнике запущен сайт).

В общем, мне сейчас некогда разбираться, что происходит на сервере-источнике. Потому что я, как малознающий, потрачу сейчас много времени на это. А мне пока надо сделать такую синхронизацию файлов сервера-источника с сервером-приемником.

truebin
() автор топика

Не, тут люди facepalm на мою тему поставили. Тока я реально понять не могу – почему?

Ну, я читал много текста про утилиты копирования. Конечно, на ангельском пока не умею читать нормально. Интернет, я считаю, переполнен поверхностным мусором по Линуксу – тупо копипаст статей плохого качества.

Пишите, чё вы ставите facepalm.

truebin
() автор топика
Последнее исправление: truebin (всего исправлений: 1)
  1. Как лучше передавать файлы с сервера на сервер?
  2. Почему wget реконнектится (почему связь обрывается)?
  1. rsync
  2. Сделайте диагностику канала связи. Например, с помощью утилиты mtr.
ALiEN175
()
Ответ на: комментарий от firkax

Я же написал - для фоточек. Правда, я всё время забываю, что сам его использую внутри l2tp/ipsec и мне прям очень хорошо.

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

Ставят фейспалмы потому, что работать сисадмином Linux, и при этом не уметь читать на английском и использовать rsync и scp – это как работать атомехаником и не уметь проверять уровень масла в двигателе и заливать стеклоочиститель.

Будь ты зеленым новичком, что впервые поставил Linux на свой ПК дома – вопросов к уровню навыков бы не было.

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

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

Я знаю про rsync и scp. И пользовался ими. Дело в том, что может я чё не знаю – и может чё еще есть по этой теме. Вот, я видел, как по nc еще можно передавать файлы. Типа, говорили в интернете, что это быстро очень. Потому что не шифруется соединение при передаче и файлы не шифруются.

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

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

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

Короче, фейспалмы не от уровня вопросов как такового, все были новичками, а от несоответствия навыков и позиции, за которую вообще-то кто-то платит.

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

Ладно. Спасибо за ответ. Хз. У меня лично так: я не могу никогда быть уверенным в том, что досконально знаю какой-то инструмент.

Тот же rsync Ты знаешь все, на что он способен? И так со всем. У меня лично так.

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

Нет, всего rsync я не знаю. Как и со многими. Для этого есть маны и гугл, да.

И часто бывает так, что сперва тревожно, как это наверное сложно, потом применяешь – да фигня полная ж, элементарно.

Vsevolod-linuxoid ★★★★★
()

syncthing и отдельными файлами. Он очень прост в настройке и решит множество проблем, с которыми вы ещё не столкнулись.

Или продолжить wget -c -r

anonymous
()