У nc есть один существенный минус. Порт на сервере для передачи данных надо открыть в файрволле, а после передачи не забыть закрыть. А для передачи данных с локального ПК на сервер, надо пробрасывать порт на локальный комп на маршрутизаторе (если конечно сквозная маршрутизация не настроена средствами ВПН или напрямую). Для ssh порт как правило открыт для подключений извне, так что дополнительных лействий совершать не придется. Далее, хорошо сжимаемые данные (текстовики, образы виртуалок, дампы баз) принято гонять в сжатом виде. Жать можно на лету, либо встроенными в scp инструментами, либо жать сторонними утилитами вроде pigz и гонять данные через ssh и пайпы. Например так: dd bs=4M if=template.img | pv | pigz -9c | ssh user@host "unpigz -c > /vm/template.img" Подобным способом можно не только гонять файлы, но и переливать образ на удаленное устройство. sudo dd bs=4M if=/dev/ssd1/vm | pv | pigz -9c | ssh user@host "unpigz -c | sudo dd bs=4M of=/dev/ssd2/vm"
@ТимурСафаров-в1ч4 жыл бұрын
Каканы всем привет - классное приветствие я такого ещё не слыхал
@t0digital4 жыл бұрын
Котаны:)
@HELLO_AGAIN5 жыл бұрын
Подобные видео очень даже интересны! Благодарю!
@RuchejAlex6 жыл бұрын
Когда он начал передавать файлы, у меня видео залагало.
@t0digital6 жыл бұрын
да, на 1080p почему-то ютуб лагает в этом моменте на этом видео - на большем или меньшем разрешении всё ок
@RuchejAlex6 жыл бұрын
@@t0digital это к тому, что передача данных высосала весь инет)
@t0digital6 жыл бұрын
@@RuchejAlex Magic:)))
@plgrm445 жыл бұрын
и у меня залагало, в следующий раз зипуй перед отправкой
@vasiliynet34255 жыл бұрын
Огонь! Как и в комментах ниже, тоже в основном через rsync льем. Мелочевку, так и вообще в mc по F5 удобней :)
@МаксКошевой-щ2б4 жыл бұрын
а мне чет кажется rsync быстрее, сравни скорости в след видео, или это допиши)
@AlieXAndreX Жыл бұрын
Блин! Как охрененно, а я то думал как мне по быстрому передать виртуалку на другой сервак. Спасибо!
@LinuxbyDmitry5 жыл бұрын
rsync, пожалуй самый не удобный инструмент), но для передачи например сайта размером 500 гигов, на мой взгляд лучше чем rsync не найти. Правда он частенько разрывает соединение, но если написать не сложный скрипт, то он будет возобновлять передачу сам и в обще поможет в организации передачи. rsync может налету сжимать и шифровать данные, проконтролирует целостность файлов и структуры директорий, да и сама доставка будет гарантированной. Пользуюсь на работе rsync, в качестве быстрого (инкрементного способа), копирование всякого рода софта, юзер документов и т.д.. Проверяет на изменения более 200 гигов за несколько секунд, с около десяти ПК и копирует только изменения или новые файлы, старые (которых нет в оригинале) в моём случае удаляет.
@LinuxbyDmitry6 ай бұрын
@@Александр-у7м2у Давно это было, да и комментарию уже четыре года)). Я ответил с ссылкой, но похоже KZbin не пропускает).
@GrinRuslan5 жыл бұрын
не знал о такой штуке. до этого использовал только scp
@olegssh6452 Жыл бұрын
Подобные видео явно нуждаются в текстовой версии что бы удобнее было потом искать.
@aleksandrdevelopment3321 Жыл бұрын
Очень крутые и действительно полезные видосы!
@nikolaysokolov90275 жыл бұрын
Обалдеть). Только для трассировки http get/post использовал. Не знал, что можно файлы передавать по сети.
@SergeyChernetsky4 жыл бұрын
Крутяк 👍🏼
@ntrl78 Жыл бұрын
можно добавить команду pv в поток приемнику или передатчику, тогда будет виден прогресс. я бы в конце md5sum у файликов сравнил на всякий случай :)
@VadimMolchanov5 жыл бұрын
Класс, красивое использование утилит!
@t0digital5 жыл бұрын
спасибо!
@cleverscript Жыл бұрын
Супер спасибо!
@eugenstakhursky96044 жыл бұрын
Спасибо дружище, интересно, буду пробовать! С меня лайк и подписка)
@t0digital4 жыл бұрын
Отлично!
@DmitryLopatkov5 жыл бұрын
nc прикольно. есть ещё rcp, оно может копировать без шифрования (или для scp задать шифрование слабее дефолтного, чтобы меньше процессор грузить, в него обычно упирается скорость). А ещё можно на стороне источника взмахом пера поднять питонячий вебсервер (с корнем в каталоге где запускается команда, по умолчанию на порту 8000 и всех доступных интерфейсах, но можно задать если надо) и с него по http забрать любым удобным клиентом. python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")') Serving HTTP on 0.0.0.0 port 8000 ...
@kprohorow2 жыл бұрын
Незаменимая вещь в спартанских условиях. Однажды я даже звук с микрофона одного компьютера netcat-ом передавал на другой комп.
@КонстантинАнсимов5 жыл бұрын
Есть еще rclone (rclone.org/). Работает так же быстро и просто, есть поддержка шифрования (при желании), а также куча протоколов облачных хранилищ.
@oleg9ff5 жыл бұрын
Благодарю за видео. netcat вообще швейцарский нож - мало чего из него сделать _нельзя_ 8)
@rabotavsem_biz Жыл бұрын
какая разница в скорости передачи, если передавать через файл зиллу используя sftp ?
@bessonov_mr6 жыл бұрын
Спасибо, взял на вооружение)))
@markplay64666 жыл бұрын
Спасибо, мне пригодится, я не знал= )
@pvinnie38272 жыл бұрын
у rsync есть преимущество он с ключем --progress показывает собственно прогресс копирования
@t0digital2 жыл бұрын
Можно показать прогресс и для nc с pv linuxhint.com/use-netcat-to-transfer-files/
@Владислав-и3б9н5 жыл бұрын
Коротко и полезно )
@t0digital5 жыл бұрын
Спасибо:)
@touchdownscale5 жыл бұрын
Cпасибо, очень помог!
@t0digital5 жыл бұрын
Отлично!
@ДанькаЛобанов-у6ю6 жыл бұрын
знал о ней, но на принимающей стороне писал питоновский скрипт на сокетах для приёма файлов. Для копирования большого количества файлов вы что выберете. nc или rsync?
@t0digital6 жыл бұрын
Даа, питон+сокеты = love:) если размер диска на сервере позволяет и файлы хорошо жмутся, я бы pigz'ом их пожал (он для архивации использует все ядра) и потом перенес с nc. Если жать не хочется и файлов много, то объединить их в один с tar и тоже через nc выгрузить. Nc с tar в среднем может быть быстрее rsync до 5 раз, но rsync хорош именно для периодической синхронизации данных
@8scarsboy6 жыл бұрын
Вполне не плохо, в локальной сети на удалённых серверах хорошо файлы перекидывать
@kosatchev5 жыл бұрын
Ого! какое колдунство!
@t0digital5 жыл бұрын
Магия!
@alexander199740 Жыл бұрын
как ты разделил экран так на линуксе?)
@t0digital Жыл бұрын
tmux
@abyrva1g4915 жыл бұрын
Спасибо! Пользуюсь NFS для передачи если в одной сети.
@ДаниилЧайка-ч3в5 жыл бұрын
Годно!))
@alexxx44345 жыл бұрын
А ужать и зашифровать (каким нибудь пакером и передать по трубе) во время отправки нельзя?
@t0digital5 жыл бұрын
сначала ужать и зашифровать, затем передать - можно. Делать это всё одновременно, думаю, тоже можно, но надо искать способ
@boson_higgs2 жыл бұрын
Почему не rsync? По-моему главное удобно и скорость не уступает.
@t0digital2 жыл бұрын
Скорость уступает
@igorshlyakov93216 жыл бұрын
Круто! Спасибо большое, ща буду осваивать, а можно передавать из сервака на виндовс машину?
@t0digital6 жыл бұрын
Да, на виндоус тоже есть nc
@igorshlyakov93216 жыл бұрын
спасибо! нашел где можно вкурить подробнее: www.8host.com/blog/ispolzovanie-netcat-dlya-sozdaniya-i-testirovaniya-soedinenij-tcp-i-udp-na-vps/
@denisdragomirik5 жыл бұрын
Не знал. Учитывая, что скоро будем мигрировать сервис с файлами на пару десятков Гб, очень кстати
@t0digital5 жыл бұрын
Отлично! Успешной миграции:)
@fensrg5 жыл бұрын
Если файлов много воспользуйтесь лучше rsync'ом в таком случае вам не понадобится пространство под архив и не потребуется отдельно перекидывать множество файлов. Можно воспользоватся ssh выполнить команду создания tar архива только не в файл а в stdout и через pipe ловить либо в файл либо сразу распаковывать
@fensrg5 жыл бұрын
бинарщину большого размера недоводилось передавать а дампы сливал всегда так ssh host 'mysqldump dbname | gzip' > dbname_date.sql.gz ну или через пайп кинуть в gzip -d и потом либо в файл либо опять же через еще один пайп уже сразу в БД секьюрно быстро без создания промежуточных файлов.
@t0digital5 жыл бұрын
Спасибо! Да, это выручает, когда места на сервере не хватает
@jeep4567896 жыл бұрын
Очень круто, а в роутере получается тоже нужно порт пробрасывать ?
@t0digital6 жыл бұрын
Нет, если грузим с сервера на локал, то можно поступить по сценарию в видео (сервер отдает в свой порт данные, клиент забирает с него), если с локала на сервер, то можно на сервере открыть порт на получение, а с локала послать туда в этот порт данные с файлом
@jeep4567896 жыл бұрын
@@t0digital понятно, спасибо
@antmixxx4 жыл бұрын
достаточно использовать IPv6 и забыть о пробросе портов совсем.
@igorshlyakov93216 жыл бұрын
А у меня эта штука не работает на Shared хостинге timeweb. При указании порта пишет: grab 0.0.0.0:8888 with bind : Operation not permitted Что делать?
@fensrg5 жыл бұрын
использовать ssh например так: ssh host 'mysqldump -uusername -ppassword dbname | gzip' | gzip -d > dbdump_date.sql
@vinc98466 жыл бұрын
Все ж таки, логичнее на приемнике открывать порт на прослушивание (опция -l), а вот на ПК с файлом делать отправку в удаленный порт, т.е. команды наоборот.
@t0digital6 жыл бұрын
Да, тоже вариант. Но если надо выдернуть с сервера на локальный комп, не имеющий статического ip, то в него и не постучишься - вероятно, у нас это более частая задача была
@paulstrong16564 жыл бұрын
Я пока что так и не понял, как это взлетело :) всегда делаем как раз наоборот, как пишет @dervish Я всегда этот способ понимал так: мы запускаем прослушку порта 8888, по идее чтобы туда данные по сети наливать, а потом с хоста где лежит файл - отправляем его в сокет.. а в текущем случаем мы слушает порт 8888 и сразу же туда наливаем файл, а как этот поток прилетает на клиентскую часть - я пока что мозг сломал) завтра посмотрю в strace, че там происходит
@cleverscript Жыл бұрын
а как потом закрыть этот файл на удаленном сервере после того как он скачался уже?
@t0digital Жыл бұрын
Ctrl+c для закрытия открытого в сессии nc вроде как
@cleverscript Жыл бұрын
то есть просто закрыть nc?@@t0digital
@oleksandrkachynskyi10135 жыл бұрын
Привет, с одним большим файлом как правило проблем нету. У меня другая проблема, есть проект, в котором 1 000 000 ( условно, на самом деле сильно больше) файлов размером в пару килобайт. Задача перенести/склонировать на другой сервер, но архивировать не выйдет, потому что запас свободного места не позволит. Как быстро перенести все это добро ?
@t0digital5 жыл бұрын
Ну а как - если в один файл каким-нибудь tar'ом места не хватит на сервере упаковать, то в любом случае надо переносить по одному или жать по несколько и переносить. Но по одному это не значит вручную - простой bash скрипт, например
@oleksandrkachynskyi10135 жыл бұрын
@@t0digital Спасибо.
@cyber-ru5 жыл бұрын
@@oleksandrkachynskyi1013 www.linux.org.ru/forum/general/7603723 tar, pipeline чтобы налету, утилита отправки
@oleksandrkachynskyi10135 жыл бұрын
Нашел для себя оптимальное решение. Дано: 40 млн мелких файлов. Основная проблема не с копированием, а построением списка файлов. лучший результат показал rsync -avzhe ssh user@ip:/folder/to/copy/ /folder/destination/ (синхронизировать удаленную папку с локальной) У меня вышло 36-50 mb/sec. Можно еще выжать скорости если делать это не через ssh а настроить rsync сервер. Пробовал так же вариант с архивами в пайп, много нагрузки на ЦПУ, так как там рабочий проект, то это плохо.
@GexPlayerMD4 жыл бұрын
Про nc знал, про watch нет, каждый раз как дурак тыкал вверх и энтер =))
@t0digital4 жыл бұрын
Watch крут:)!
@vitalyvlasenko54953 жыл бұрын
Сорри за некропостинг, у меня алиас в .basrc с while : и sleep 1. Я гордился этим алиасом... ООО "Костыли и велосипеды": программируем, как умеем.
@rsenmakh4 жыл бұрын
Всегда использую SCP. А почему передавали в nc файл db-2019.......sql, а скачивали db.sql ?
@t0digital4 жыл бұрын
потому что мы можем указать любое имя файла при его сохранении
@sashasashovic914 жыл бұрын
Знал NC, но не знал про key q. Используйю scp безопасность и скорость есть.
@oleg-medovikov5 жыл бұрын
разве rsync медленнее копирует файлы? или я чего-то не понимаю
@t0digital5 жыл бұрын
netcat копирует файлы быстрее, чем rsync, до 5 раз moo.nac.uci.edu/~hjm/HOWTO_move_data.html#tarnetcat
@oleg-medovikov5 жыл бұрын
@@t0digital а я только с ним разобрался и алиасов понаписывал и скрипты для бекапов
@oleg-medovikov5 жыл бұрын
@@t0digital подписался
@t0digital5 жыл бұрын
@@oleg-medovikov спасибо за подписку! Rsync хорошая штука именно для синхронизации директорий/файлов, потому что умеет работать с diff'ами, то есть гонять по сети не полностью файл/все файлы, а разницу. Это очень круто для своих задач. Разовая выгрузка тяжеленного файла - другая задача. Ну или постоянные выгрузки, но именно разных файлов, не частично меняющихся, и тяжелых
@oleg-medovikov5 жыл бұрын
@@t0digital а ну тогда значит для моих задач нужен именно rsync
@AndreyChursin5 жыл бұрын
Wget не сделает тоже самое(скачает файл)?
@t0digital5 жыл бұрын
сделает, но медленнее
@fensrg5 жыл бұрын
@@t0digital на сколько медленее? учитывая что до сервака от клиента идет не оптика и потери на шифрование через scp и оверхед на http мелочи и сильно на скорость передачи не повлияют.
@t0digital5 жыл бұрын
@@fensrg попробуйте. Оверхед огого:) сеть 100 мбит хотя бы есть наверняка, а это 12.5 метров в сек, почти гиг в минуту
@fensrg5 жыл бұрын
@@t0digital я немного удивлен результатом... nc оказался всего на 25% быстрее. За то ssh оказался на целых 83% быстрее O_o возможно сказалась передача по локалхост... но ssh это же не мускуль который ломится на файловый сокет если у него в конфиге прописан localhost или 127.0.0.1 забавный момент надо еще потестить
@wMwPlay4 жыл бұрын
rsync использую
@EvgenyRejnovskey4 жыл бұрын
И скорость можно резать
@NarkotikAsd4 жыл бұрын
пароль в зипе и не открытый будет
@t0digital4 жыл бұрын
Ась?
@ВиталийТуров-э3б5 жыл бұрын
Добрый день. А что у тебя за книга на столе?
@t0digital5 жыл бұрын
Добрый день! "Python. К вершинам мастерства"
@sergeyf74595 жыл бұрын
@@t0digital и как книга, стоит почитать?
@t0digital5 жыл бұрын
@@sergeyf7459 да, она хороша
@АртемЗайцев-с2д5 жыл бұрын
ssh?
@t0digital5 жыл бұрын
Что ssh?
@АртемЗайцев-с2д5 жыл бұрын
@@t0digital не так услышал, всё хорошо) спасибо за видео)
@sashasashovic914 жыл бұрын
scp на основе ssh для передачи байтов
@sammygun845 жыл бұрын
Не знал о такой штуки ты подвидео оставляей команды из урока удобно потом к ним возвращаться если можно конечно. Хотел уточнить к примеру мой ip такой как указан ниже то я просто захожу на сервер и пишу так nc 172.178.132.144 > db.sql и скачиваю себе на сервер правильно? И почему в примере файл db-2019-01-15__16-16-47.sql название такое, но при скачивании указано db.sql?
@ge_bassist82324 жыл бұрын
идёт передача файла (сюрприз) пакетами, т.е. по частям. имя файла на принимающем сервере не имеет никакого значения. Просто содержимое db-2019-01-15__16-16-47.sql по частям записывается в новый файл. Если проводить аналогию из реальной жизни, то это как переливать воду из зелёного стакана в прозрачный, суть от цвета стакана не меняется.
@ВладимирГригорьевич-у2р6 ай бұрын
за watch спасибо
@boonya415 жыл бұрын
Огнище! А я долбаюсь тут чтобы полтора ГБ через vpn прокси протянуть с помощью scp. Он то залипает, то еще что-то. Спасибо
@t0digital5 жыл бұрын
Спасибо:)!
@boonya415 жыл бұрын
@@t0digital вчера стянул... Походу openvpn скорость душит. 470kbps максимум. Нужно какой-то p2p vpn придумать
@ДмитрийР-г4у4 жыл бұрын
👍
@nizdiminov5 жыл бұрын
Cool
@andrey_kapro2 жыл бұрын
использую rsync
@D_r_._C_r_A_z_Y2 жыл бұрын
а "scp" уже не канает? и только на одной стороне команду давать надо. я сотни гигов без проблем по шурику копирую
@t0digital2 жыл бұрын
Медленнее. Если устраивает - ок
@D_r_._C_r_A_z_Y2 жыл бұрын
@@t0digital хм... С чего бы? По гигабитной сетке 110-115MB/s
@t0digital2 жыл бұрын
@@D_r_._C_r_A_z_Y с чего бы инструмент, имеющий меньше оверхеда, работает эффективнее? Ну так вот все устроено в жизни)
@D_r_._C_r_A_z_Y2 жыл бұрын
@@t0digital По теории всё верно говорите, но на практике-то скорость копирования равна пропускной скорости канала без накладных расходов. Плюс копирование групп файлов и вложенных директорий. Попробуйте - не пожалеете! Вариант с "nc" не отвергаю - пойдёт для развития и разнообразия ))
@t0digital2 жыл бұрын
@@D_r_._C_r_A_z_Y скорость копирования никогда не равна скорости канала