LINUX.ORG.RU
ФорумAdmin

Помогите понять, что мне пишет rclone. Какие pipes, почему broken?

 , ,


0

1

Здравствуйте.

Давно когда-то утерял возможность монтировать ftp, и с тех пор тщетно пытаюсь обратно. Прошу знающих и сострадательных людей пояснить и сориентировать. Итак:

В первом терминале монтирую rclon'ом свой телефонный ftp-сервак:rclone mount phone:/ /ph -vv

Во втором терминале делаю ls /ph/tmp - всё содержимое прекрасно отобразилось, в первом терминале пробежали нормальные логи.

Жду несколько минут, и золушка превращается в тыкву: пытаюсь снова ls /ph/tmp, и получаю в ответ ls: cannot access '/ph/tmp': Input/output error, в первом терминале дебаг пишет некультурное:

2026/04/26 14:17:08 DEBUG : /: Lookup: name="tmp"
2026/04/26 14:17:08 DEBUG : /: >Lookup: node=tmp/, err=<nil>
2026/04/26 14:17:08 DEBUG : tmp/: Attr:
2026/04/26 14:17:08 DEBUG : tmp/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxr-xr-x, err=<nil>
2026/04/26 14:17:08 DEBUG : tmp/: ReadDirAll:
2026/04/26 14:17:08 DEBUG : tmp: Dir.ReadDirAll error: write tcp 192.168.1.100:42184->192.168.1.102:2121: write: broken pipe
2026/04/26 14:17:08 ERROR : IO error: write tcp 192.168.1.100:42184->192.168.1.102:2121: write: broken pipe
2026/04/26 14:17:08 DEBUG : tmp/: >ReadDirAll: item=-1, err=write tcp 192.168.1.100:42184->192.168.1.102:2121: write: broken pipe

192.168.1.100 - это локальный адрес тачки, 192.168.1.102 - адрес фтп-сервака.

И на фоне этого безобразия rclone ls phone:/tmp совершенно исправно выдаёт мне содержимое соответствующей папки совершенно безотносительно того, какие pipes ломаются у монтирования. В mc встроенным фтп-клиентом 192.168.1.102:2121 тоже железобетонно доступен и на запись, и на чтение, в обоих случаях - никаких дисконнектов.

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

archlinuxarm, RPI4. Спасибо за внимание.

P.S. Решением стала смена ftp на ssh.

Перемещено hobbit из general

★★★★★

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

Я нихрена не знаю, что такое rclone, но когда я вижу

телефонный

и

несколько минут

то рука сразу тянется к парабеллуму то сразу думаю про энергосбережение на телефоне.

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

Рклон - это монтёр-синхронизатор всеразличных сетевых хранилищ. Интересен мне в данном случае как монтёр. Спасался curlftpfs'ом, но через короткое время отвалился и он(

про энергосбережение на телефоне

Оно вполне по-божески жрёт, если всё остальное повыключать. Я б так не заморачивался, если б это не было так удобно.

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

Чувствую, что я плохо понял суть проблемы, но может попробовать что-то с GUI?
Когда-то уже очень давно, во времена седьмого-девятого Debian ставил небольшую утилитку gigolo.

Хотя, судя по описанию, нужно копать в сторону засыпания процессов по тайм-ауту из-за энергосберегающих уловок.

k6
()

rclone ls phone:/tmp

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

anonymous
()

Помогите понять, что мне пишет rclone. Какие pipes, почему broken?

Я не понял что это за непонятная возня и зачем, но сообщение об ошибке вполне очевидное: сервер на адресе 192.168.1.102:2121 дропнул твой ранее подключённый tcp-коннект к нему, и твоя клиентская прога это заметила когда попыталась туда что-то отправить.

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

Но почему этот сервер не дропает коннект от mc - в нём всё ок? Его фтп-клиент как-то без tcp коннектится? И rclone ls phone:/ тоже стабильно кажет и каталоги, и подкаталоги. По-моему, сервак тут вполне и ни при чём может оказаться.

Может быть можно как-то настроить рклон, чтоб так уж трепетно к этому тисипи не относился, что бы это ни было.

Возня эта затем, что я хочу надёжно примонтировать этот фтп. Очень. До такой степени, что даже полез понимать логи...

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

Я все паузы, которые только можно было, вокруг этой темы выдержал, и впал в полную депрессию. И ключи с кешем и рефрешем не помогают(

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

Я нигде не писал что тебе запретили использовать tcp. Я писал что к моменту запроса второго ls (который не работает) коннект, сделанный программой rclone mount на старте её работы, был дропнут, и rclone об этом узнал тогда, когда попытался в этот коннект послать второй ls. Больше ничего из этих логов узнать нельзя.

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

Оно вполне по-божески жрёт

Дело не в том, кто и что жрёт, дело в том, что операционка телефона прибивает процессы, которые ей кажутся не нужными. Всевозможные сервисы типа termux+sshd/rsyncd, syncthing, kdeconnect обосенно к этому уязвимы. Для пользователя это выглядит как «случайным образом то работает то нет».

В твоём случае, возможно, нужно, чтобы фтп-клиент слал запросы keep-alive.

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

Смутно что-то такое я и сам понимаю. Но почему не дропается mc? И как такое поведение победить?

Ведь это какой-то суперхардразрыв получается, с невозможностью переконнекта. Дропбокс, примонтированный тем же рклоном, спокойно реконнектится, хоть интерфейс сетевой вырубай, а потом врубай обратно.

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

операционка телефона прибивает процессы, которые ей кажутся не нужными

Не, со стороны телефона всё принудительно закреплено и к спячке запрещено.

возможно, нужно, чтобы фтп-клиент слал запросы keep-alive

я включал --vfs-cache-mode full - без толку(

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

Вполне возможно, что mc и не держит никакое соединение, а каждый раз открывает его заново. Так и Dropbox: его научили переподключаться, а модуль FTP внутри rclone - нет. Но это догадки.

anonymous
()

Включи логи на фтп сервере и смотри что происходит. Pipes это tcp соединение установленное rclone-ом с фтп сервером. Почему оно broken при том что rclone об этом не знает, до момента попытки отправить ftp-команду наверное стоит узнавать на телефоне

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

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

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

Но почему не дропается mc? И как такое поведение победить?

У FTP есть активный и пассивный режимы. Возможно mc юзает актвный режим. А вот rclone активный не поддерживает:

Limitations

FTP servers acting as rclone remotes must support passive mode. The mode cannot be configured as passive is the only supported one. Rclone’s FTP implementation is not compatible with active mode as the library it uses doesn’t support it. This will likely never be supported due to security concerns.

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

Включи логи на фтп сервере и смотри что происходит.

когда ls /ph делаю - вообще ничего. А так - QUIT и PASS, с зелёненьким статусом.

Аноним выше каментом прав, я так думаю. Попробую rclone-git - ну а вдруг?

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

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

А вот rclone активный не поддерживает

Вот противные(

Но почему же тогда изначально коннект всё-таки есть?

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

В твоих логах ни про какие реконнекты нет. Если бы он пытался сделать реконнект и не мог - наверно про это ещё одна ошибка была бы написана.

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

Причём среди broken pipe'ов в логах периодически издевательски мелькает сообщение об успешном обновлении кеша директорий(

ftp://192.168.1.102:2121: vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
piyavking ★★★★★
() автор топика
Ответ на: комментарий от firkax

А вот это что может значить, не подскажешь (мучая настройки баг остаётся, но в логах другое)?:

2026/04/27 00:31:34 DEBUG : /: Lookup: name="tmp"
2026/04/27 00:31:34 ERROR : /: Dir.Stat error: EOF
2026/04/27 00:31:34 ERROR : IO error: EOF
2026/04/27 00:31:34 DEBUG : /: >Lookup: node=<nil>, err=EOF
piyavking ★★★★★
() автор топика
Ответ на: комментарий от piyavking

Тут не написано кто отдал EOF, но вообще EOF в том числе отдаётся из функции чтения сокета, если та сторона закрыла коннект.

Могло случиться вот что: когда клиент стал команду, он ещё не знал что соединение закрыто, и успел её послать целиком до того, как сервер ему ответил что соединения нет. А когда клиент читал ответ - он уже дождался этого EOF-а.

Чтобы узнать подробнее надо tcpdump -i any -n host 192.168.1.102. Там и время всех интересующих событий будет точно видно, и возможно ещё какие-то детали.

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

Тему прочитал, но отсутствует информация про сам «телефонный ftp-сервак». Надеюсь, что под телефоном имеется в виду Android/производные. Сам раньше пользовался Primitive FTPd и Material Files - мб они не будут рвать коннект/умирать в фоне.

Если верно понял, то от фтп тебя интересует лишь возможность примонтировать на сервер - sshfs рассматривал? Сервером может выступить хоть тот же Primitive FTPd/Termux, но я в последнее время использую гуйный Sshd4a с нативными бинарями под капотом.

И не думал зайти с другой стороны - с телефона ходить на одноплатник? Material Files и Ghost Commander умеют разные сорта шар внутри себя. Если нужно именно «монтирование», то без рута ещё в Android 4.4 завезли Storage Access Framework. В родном проводнике оно ниже SDCARD Гуглоскриншот/Гитхабоскриншот. Многие приложения уже достаточно давно имеют поддержку оного. Добавить пункт в список хранилищ может тот же Ghost Commander либо более узкоспециализированная софтина типа CIFS Documents Provider.

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

Primitive FTPd хорошо себя ведёт! Cпасибо!

Ещё потестирую, и тему, наверно, можно будет закрывать (тьфу-тьфу-тьфу не сглазить!)

не думал зайти с другой стороны - с телефона ходить на одноплатник?

Не, так неудобно. У меня на одноплатнике десктоп. Я с телефоном в кармане подошёл - файлопомойка приконнектилась. Так удобно)

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

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

pfg ★★★★★
()

Какие pipes, почему broken?

Тред читал. Удивлён, что ещё не шутили про дитейлс и фабрик. :)

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

Вполне возможно, что mc и не держит никакое соединение, а каждый раз открывает его заново.

И эту гипотезу даже можно проверить, исходники mc открыты.

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

Уже писали, что телефон засыпает и всё умирает. Поищи про wake lock и doze mode, но игры с ними могут привести к жору батареи. Либо смерть настигает из-за лимита фоновых процессов - ограниченно крутятся в настройках для разработчиков без рута.

Ещё как вариант - сделать баш-портянки с пингами ипа телефона/проверкой шары и ремаунтом.

И ещё раз предлагаю посмотреть в сторону sshfs - вдруг там поведение при обрывах будет лучше. Если переживаешь за оверхед от шифрования, то несколько лет назад я знатно повеселился, когда все апкшки с фтп-серверами на жабе оказались сильно тормознее.

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

ещё раз предлагаю посмотреть в сторону sshfs

Так я только за. А не поможешь советом, как в Termux ssh сервер запустить? Это было бы в самый цвет...

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

точнее sshd -p 2222 потому что стандартный порт забиндить не даст

А. Так вот почему у меня не получалось. Век живи - век учись. Продолжу разгрызание матчасти. Спасибо!

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

Настроил sshd в термуксе, блаженствую. Эта заноза зудела среди меня два года, спасибо за верные направления!

piyavking ★★★★★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария