TG Telegram Group & Channel
ServerAdmin.ru | United States America (US)
Create: Update:

​​Буквально на днях узнал про утилиту консоли 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

​​Буквально на днях узнал про утилиту консоли 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<<

ServerAdmin.ru






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)