VxWorks
@ 29-01-2008, 02:23
Есть девайс, на котором бегает Busybox 1.5.1
Кроме телнета у него ничего нет. Надо на него закинуть пару файлов, а потом стащить с десяток других файлов с него.
Вопрос - как это сделать? Файлы, в основном, текстовые, но есть и пара бинарников.
Комманд типа get/put тоже нет. Есть wget, но поднимать апач ради пары файлов меня ломает.
с телнетом может быть немного сложнее, особенно с бинарниками. Телнет слишком много чего пытается транслировать как управляющие символы.
Вот с ssh это просто -
закинуть : cat file | ssh host "cat > file"
стащить : ssh host "cat file" > file
поднимать апач не надо, вполне хватит поднятия какого-нить tinyweb (
http://www.ritlabs.com/en/products/tinyweb/ ) - вот только это не сильно поможет стащить файлы с девайса. Но вообще вещь в хозяйстве полезная.
VxWorks
@ 29-01-2008, 11:05
ssh на девайсе тоже нет :(
А как сделать через телнет, не знаешь?
heineken man
@ 29-01-2008, 11:18
Давай начнем с другой стороны: а что есть клиентского на девайсе для приема/передачи: ftp/tftp/scp/wget/? От самбы что нибудь?
VxWorks
@ 29-01-2008, 12:14
Есть wget и UPnP AV клиент, что не сильно поможет.
heineken man
@ 29-01-2008, 12:55
wget уже что-то, по крайней мере файлы можно закачать на железяку.
Обычно имеется также tftp. Часто нужен для загрузки/апгрейда фирмваре.
Идея в том, чтобы вместо того, чтобы запихивать и сливать с сервисов железки использовать клиентов на железке, чтобы запихивать и сливать сидя на железке. :rolleyes: Т.е. поднять tftp/ftp сервер на компе и put/get-ать с железки.
P.S. Глянул на сайте
железки - имеется tftp client, ftpput and ftpget. Упоминается возможность установить ssh client and server. Вполне достаточно средств.
VxWorks
@ 29-01-2008, 13:38
Busybox бывают в разной комплектации - в этой нет ничего, связанного с (t)ftp, я вчера рылся в файловой системе и ничего не нашел. Фирмварь она тащит с сайта конторы через wget, я его утащил и посмотрел в tmp вчера.
То есть, в теории, можно туда через wget засунуть ftp сервак, но я как-то никогда не работал с такими делами в линуксах.
heineken man
@ 29-01-2008, 14:03
Т.е. аплет ftpget ([options] remote-host local-file remote-file) не вкомпилирован?
И совать через wget лучше не фтп сервер, а разные клиенты. На порядок легче задача.
VxWorks
@ 29-01-2008, 14:23
нет, не компилирован :( И компилить тоже нечем, бо компилятор в системе не присутствует.
Чтобы засунуть клиент через wget, надо его сначала скомпилить под девайс (это какой-то ARM, но какой, черт его разберет - инфы нет).
Может через tcpsvd можно?
QUOTE (VxWorks @ 29-01-2008, 03:05) |
ssh на девайсе тоже нет :( А как сделать через телнет, не знаешь? |
с телнетом можно также, как и с ssh, если мне ничего не изменяет. Но вот что делать с управляющими символами я не знаю. Он явно бинарники покоцает при передаче.
На железки файло таки проще всего тянуть вгетом - поставь себе этот tinyweb и закинь файлы. А вот забрать файлы с девайса... а какого-нить кермита на железке нет? Ну или еще чего подобного, типа z-modem'a..
VxWorks
@ 29-01-2008, 23:47
Ничерта нет, ни кермита, ничего. И uuencode тоже нет.
МЛИН, какой я идиот! nc работает прекрасно!!!
Спасибо за подсказку! :hi:
UPD2: А как заставить виндовый nc посылать файлы, а не только принимать?
UPD3: команда типа:
nc -l -p 4000 -n 192.168.100.100 < file.bin - на винде
и
nc 192.168.100.101 4000 > file.bin
ни к чему не приводит.
брр.. если тебе надо на винде посылать, то принимать будет демон на железке. То есть слушать должна принимающая сторона. Обязательно.
на железке -
nc -l 4000 > file.bin
на винде -
nc 192.168.100.100 4000 < file.bin
VxWorks
@ 17-03-2008, 03:22
Не работает, зараза. На железке можно задать только команду типа
nc <address> <port>
Все. Никаких -l или -L
На Винде команда типа
nc 192.168.100.101 40000 <file.bin
просто закрывается через пару секунд.
А на железке выдает такое:
# nc 192.168.100.100 40000 >file1.bin
nc: cannot connect to remote host (192.168.100.100): Connection refused
воркс, ну хоть одна из сторон должна слушать. Не могут они обе пытаться коннектиться. Если железяка слушать не умеет (что само по себе маразм), то хотя-б на винде ставь -l.
ну и, собственно, С девайса можно будет забрать через nc (винда слушает и пишет в файл), а НА девайс таки закидывать через wget (запуская на своей машине tinyweb). Потому как у меня стойкое впечатление, что со слушающей машины нихрена не передать.
А, впрочем, надо проверить, может я не прав. Может и передать можно.
VxWorks
@ 17-03-2008, 15:47
Так прикол в том, что я не понимаю, как можно заставить nc на железке слушать порты. Виндовый, тот да, слушает. Но только для incoming transfer. А для outgoing - фиг там.
Такой вот однобокий транфер получается.
В итоге, я все-таки нашел способ передать файлы на эту фиговину - там обнаружился smbmount, так что я создал раздел на компе, специально для связи с этой фиговиной, закинул туда файлы и смонтировал этот раздел на железке. Знаю, что через задницу, но вариантов больше я не вижу.
Разве что скомпилировать под эту хрень FTP сервак и закинуть его на железку. Кстати, не знаешь какой-нибудь простой и маленький FTP сервак под линукса?
воркс, smbmount - это наименее через задницу. Работает - и не трогай :) Чем компилить фтп сервер под ARM....
а про однобокость я так и думал, что принимать может только слушающая сторона. И если слушанье у железяки не реализовано, то не судьба. Через nc только оттуда забирать.
Ну да через smb теперь можешь в обе стороны кидать без проблем. Так что проблема как-бы и решена.
VxWorks
@ 17-03-2008, 17:01
Да, smbmount решает проблему, это точно. Но как-то неаккуратненько © :)
a чем тебе "неаккуратненько"?
если не хочется каждый раз лезть в теленет и оттуда smbmount и всякое там cp, то можешь попытаться написать скрипты дле телнета так, чтоб ты запускал скрипт на винде, а он телнетился, маунтил, копировал и унмаунтил. по идее ничего сложного.
VxWorks
@ 17-03-2008, 18:59
Ну... в принципе ты прав :)