У меня есть программа, которая записывает некоторые файлы в каталог. Моя проблема в том, что если каталог по какой-то причине не смонтирован, программа все равно записывает в каталог, но файлы попадают в файловую систему системы, а не в нормально смонтированную файловую систему. Я хотел бы, чтобы записи в каталог не выполнялись, если этот каталог не смонтирован. Как мне это сделать в Linux?
2 ответа
Сделайте базовую точку монтирования доступной только для чтения.
Когда дополнительная файловая система смонтирована, ее разрешения имеют приоритет IIRC.
Я тоже однажды наткнулся на эту проблему.
В моем случае скрипты обращаются к рассматриваемому каталогу как root, поэтому опция readonly не была бы решением.
Но есть два других возможных обходных пути:
1-й: Проверьте с помощью команды mount, если каталог смонтирован:
if mount | grep /that/mountpoint
then
...
2-й: создайте вручную файл флага после монтирования FS и проверьте это в вашем скрипте. Если файл-флаг отсутствует, FS может быть не смонтирован
mount /that/mountpoint
touch /that/mountpoint/.is_mounted
if test -e /that/mountpoint/.is_mounted
then
...
Первое решение более надежно, если оно подходит для вашей системы, а второе - более переносимо.