RPi, Linux, fuse
-
И снова здравствуйте!
И снова велосипед, который написал, скорее, для своего удобства. Понадобилось писать скриптик для одного девайса, заливать на девайс и запускать там на исполнение. Заливать по ssh надоело и решил я это исправить. У меня уже есть один лисапед, который называется ferro_remote, который я описывал тут. Собссно решил накидать fuse клиента, чтоб беспрепятственно монтировать устройство типа малины в локальную систему. Про всякие sshfs я тоже вкурсе, но это ж не наш метод ...
Собссно ничего сверх сложного нет. Просто еще один клиент, который использует протокол ferro_remote и монтирует удаленую FS в локальную директорию. Называл его fuse_client (тада! внезапно). Исходники, как обычно лежат тут. Собранные бинарник агента (серверная часть) и клиента для Rpi можно взять тут. Могу собрать для ubuntu x64 и то и другое, если кому надо будет.
Клиент поддерживает большинство необходимых операций для работы с файлами и каталогами и может работать практически (исключение - это character devices) с любым удаленным файлом, как с локальным.
Подразумевая, что агент у нас запущен на девайсе с адресом 192.168.1.11 и портом 12345, можно замапить это устройство локально (можно соединить так же 2 малины, или 2 любых линукса).
- не следует, однако, мапить устройство само на себя, чревато дедлоками
> ./frfuse_client -s 192.168.1.11:12345 -m /home/data/fuse/ -f -d FUSE library version: 2.9.4 nullpath_ok: 0
.....
тут-m /home/data/fuse/ - локальный путь, куда нужно мапить устройсто. Директория должна быть пустой.
-f- оставаться в foreground и не уходить в демона. Остановить клиента можно будет по Ctrl+C. Без этого параметра клиент станет демоном и остановить его можно будет командой
fusermount -u /home/data/fuse/
-d - писать лог в консоль. Без параметра -f не имеет смысла.Все.
Теперь в директории /home/data/fuse у нас корень устройства. Можно даже можно слушать музыку и менять теги в файлах.
Можно скопировать туда что-нить
Или получить доступ к sysfs
Еще есть поддержка базовой аутентификации (ключ --key у агента и клиента)
За сим все.