URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10114
[ Назад ]

Исходное сообщение
"Скрипт примонтирования"

Отправлено Wellberg , 18-Авг-16 13:43 
Нужен скрипт для проверки примонтирована директрория или нет.
Если нет, то примонтировать.
В качестве проверки

#!/bin/bash
dir_name="/mnt/backup"
if [ `mount | grep "$dir_name"` ]; then
echo "OK"
else
echo "Alarm!!! The directory $dir_name is not mounted!"
fi
Подскажите что не так, проверяю mount|grep /mnt/backup показывает что директория примонтирована,
запускаю скрипт,пишет что не примонтирована.
И вторая часть,
umount /mnt/backup/
cd /mnt/backup/
rm -r /mnt/backup/*
mount -a

И как связать первую часть со второй? То есть если директория не отмонтировалась, то запускалась бы вторая часть.
Скрипты для себя открыл только сегодня, заранее благодарен вашей помощи.


Содержание

Сообщения в этом обсуждении
"Скрипт примонтирования"
Отправлено Andrey Mitrofanov , 18-Авг-16 14:38 
> if [ `mount | grep "$dir_name"` ]; then

Вы слишком много куша.. а нет, не то.  Слишком много, или мало?, "кавычек". А понимания мало.

Или
if mount |grep -qs "$dir_name"; then
, или
if [ "`mount |grep "$dir_name"` ]; then
.

Но на самом-то деле (там наверху проблема с совпадением по _подстроке_...) надо
if mountpoint -q "$dir_name"; then
!

> echo "OK"
> else

И про вторую часть у меня есть чего добавить:

> umount /mnt/backup/
> cd /mnt/backup/
> rm -r /mnt/backup/*
> mount -a
> И как связать первую часть со второй? То есть если директория не

Чистишь файлы "под" примонтировнным разделом? _Просто_ смонтируй объемлющий раздел в другую директорию -- тем не будет "покрытия" этим макнт-поинтом!, сотри, если что есть, и отмонтируй. Навскидку, не проверяя:

mkdir /tmp/fully-tmp \
    && mount --bind / /tmp/fully-tmp \
    && rm -r /tmp/fully-tmp/mnt/backup/* \
    && umount /tmp/fully-tmp
|| echo XFailedX

И первая часть не нужна.


"Скрипт примонтирования"
Отправлено Wellberg , 19-Авг-16 07:40 
Спасибо большое первая часть заработала) Понимания действительно мало.
Удаляю файлы именно под непримонтированным разделом.
Остался вопрос что прописать чтобы второй скрипт запускался в случае если первый скрипт выдаст что директория не примонтирована. Извините если туплю)


"Скрипт примонтирования"
Отправлено Andrey Mitrofanov , 19-Авг-16 09:08 
> И первая часть не нужна.
> И первая часть не нужна.
> И первая часть не нужна.

Я хотел сказать вот что: заглянуть _под_ примонтированный другой раздел можно, _повторно_ смонтировав содержащий точку монтирования раздел.

Да, это неочевидно, необычно, но [в gnu/linux-е у меня] работает.

> Чистишь файлы "под" примонтировнным разделом? _Просто_ смонтируй объемлющий раздел в другую
> директорию -- тем не будет "покрытия" этим макнт-поинтом!, сотри, если что
> есть, и отмонтируй. Навскидку, не проверяя:
> mkdir /tmp/fully-tmp \
>     && mount --bind / /tmp/fully-tmp \
>     && rm -r /tmp/fully-tmp/mnt/backup/* \
>     && umount /tmp/fully-tmp
> || echo XFailedX
> И первая часть не нужна.