Буквально на днях узнал про утилиту консоли Linux - findmnt. Разбирался с проверкой монтирования сетевых дисков перед выполнением их бэкапа в скриптах. В этом вопросе, на самом деле, очень много нюансов.
Проверки можно делать разными способами. Можно банально парсить вывод df, можно вывод mount, можно грепать /proc/mounts и т.д. Кто во что горазд. Я и то, и другое, и третье делал :) Но во всех этих способах есть те или иные нюансы. То подвисает сетевой диск и вывод mount вместе с ним, то с именами путаница возникает, если название дисков частично совпадают, то пробелы в точке монтирования мешают.
Немного поразбирался в теме и выходит, что findmnt самый стабильный надежный вариант. Вот скрипт проверки.if findmnt -rno TARGET "$1" >/dev/null; then
echo "$1 mounted."
else
echo "$1 not mounted."
fi
Вместо $1 поставьте свой путь. Я в таком виде скрипт использовал для тестирования. Примерно так:./check.sh /mnt/md5
К echo соответственно добавляете или заменяете на целевое действие. Проверки можно делать как по точке монтирования с помощью TARGET, как у меня в примере, так и по устройству, тогда использовать SOURCE. А можно и то и другое одновременно. Это гораздо удобнее и надёжнее парсинга вывода mount или чего-то ещё.
Такую инфу полезно забрать в закладки.
#bash
>>Click here to continue<<
