sumej
@sumej
DevOps

Как реализовать работу с файловыми системами?

Привет всем

Вопрос:
Как реализовать(запрограммировать) работу с файловыми системами?
Начал и столкнулся с проблемой, что сам хоть все объекты в которых храниться файловая система имеют универсальный интерфейс взаимодействия. Внутри они должны быть реализованы по разному.

В linux можно подключать(монтировать) различные файловые системы. Причём у каждой файловой системы свое количество параметров и "папок" и даже последовательность исполнения комманд (+ их количество).

Примеры:
  1. Простой пример:
    mount -t ntfs /dev/sda1 /mnt/win_xp
  2. Монтирование /lxc/shared:
    mount --bind /lxc/shared /lxc/shared
    mount --make-unbindable /lxc/shared
    mount --make-shared /lxc/shared

  3. Принимает 2-е директории а не одну:
    mount -t overlayfs -o rw,lowerdir=/low-layer,upperdir=/hilayer overlayfs /overlayfs
    find /overlayfs -lname '(overlay-whiteout)' -exec rm -rf {} \;


По сути дела у каждой файловой системы есть два состояния:
  1. смонтирована
  2. не смонтирована

И над каждой можно провести ограничесное количество операций:
  • mount()
  • unmount()
  • Проверить смонтирована
  • Remove (предварительно размонтировав)


ЗЫ:
Пишу на Го. Вот что получилось: play.golang.org/p/Ri5yAqsLu7
Конечно до работы с любой файловой системой далеко =(
  • Вопрос задан
  • 2980 просмотров
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
А еще есть ceph + rbd, где ключик и мониторы указывать хорошо
И еще xfs, где можно отдельно журнал делать
А еще всякие gpfs, lustre, gluster..., где тоже свое разнообразие...

А оно зачем собственно?! У меня, например, все в fstab записано, может быть и олдскульно, но как-то привычненько...
Ответ написан
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
Работа с файлами - golang.org/pkg/io/ioutil
Работа с системой - golang.org/pkg/syscall/#Mount
Ваш сниппет это работа с командной строкой на мой взгляд
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы