Проверка Ruby, если что-то смонтировано (- bind) в этом каталоге - PullRequest
3 голосов
/ 30 июля 2010
mount
    /project on /mount_1 type none (rw,bind)
    /project on /mount_2 type none (rw,bind)
    /project on /mount_3 type none (rw,bind)

Как проверить с помощью ruby ​​(не shell !!), установлен ли какой-либо каталог в / mount_X?

Есть ли что-то проще, чем открыть / proc / mounts и искать / mount_X там?

Ответы [ 4 ]

1 голос
/ 23 ноября 2011

Еще один способ сделать это:

system("mount|grep /mount_X")
1 голос
/ 06 ноября 2015

Пока вы находитесь в Linux, вы можете найти много ответов напрямую, прочитав из файловой системы:

File.open('/proc/mounts').each do |line|
  device, mount_point, file_system_type, mount_options, dump, fsck_order  = line.split(" ")
end

, что приведет к следующему решению вашей проблемы:

if File.readlines('/proc/mounts').any?{ |line| line.split(" ")[1] == "/mount_X"}
    puts "Yes, it is mounted!!!"
end
0 голосов
/ 03 февраля 2016

Небольшой поворот в ответе @ tvw сделал это для меня. Читайте / proc / mounts построчно и выполняйте частичное совпадение строк в полный путь точки монтирования mountpoint/folder_name.

 raise "Failed:  not mounted" 
 unless File.readlines('/proc/mounts').any?{ |line| line.split(" ")[1] =~ /folder_name$/ }
0 голосов
/ 31 июля 2010

Вы можете просто проанализировать вывод команды mount:

`mount`.split("\n").grep(/bind/).map { |x| x.split(" ")[2]  }
...