projects:linux:manual_backup_scripts:mount_nas
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
projects:linux:manual_backup_scripts:mount_nas [2025/04/07 10:31] – создано | projects:linux:manual_backup_scripts:mount_nas [2025/04/11 17:40] (текущий) – | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Подключение сетевого ресурса ====== | ====== Подключение сетевого ресурса ====== | ||
+ | // | ||
+ | |||
+ | **Монтирование сетевого ресурса.** \\ | ||
+ | Можно подключить единоразово без сохранения конфигурации или прописать конфигурацию чтобы в будущем не вводить вручную.\\ | ||
+ | Файл конфигурации (представлен ниже) создается автоматически при запуске скрипта.\\ | ||
+ | |||
+ | <code bash> | ||
+ | # IP-адрес NAS (в кавычках, | ||
+ | NAS_IP="< | ||
+ | |||
+ | # Имя расшаренной папки (например: | ||
+ | SHARE_NAME=" | ||
+ | |||
+ | # Имя пользователя (в кавычках — обязательно, | ||
+ | NAS_USER="< | ||
+ | |||
+ | # Пароль (в кавычках — ОБЯЗАТЕЛЬНО, | ||
+ | NAS_PASS="< | ||
+ | </ | ||
<code bash mount_nas.sh> | <code bash mount_nas.sh> | ||
Строка 12: | Строка 31: | ||
set -euo pipefail | set -euo pipefail | ||
+ | |||
+ | # Проверка наличия утилиты mount.cifs | ||
+ | if ! command -v mount.cifs >/ | ||
+ | echo "❌ Не установлена утилита mount.cifs (пакет cifs-utils)." | ||
+ | echo "📦 Установите её с помощью: | ||
+ | exit 1 | ||
+ | fi | ||
# === ░░ БЛОК: ФАЙЛ КОНФИГУРАЦИИ ░░ === | # === ░░ БЛОК: ФАЙЛ КОНФИГУРАЦИИ ░░ === | ||
Строка 36: | Строка 62: | ||
fi | fi | ||
# === ░░ КОНЕЦ БЛОКА: ФАЙЛ КОНФИГУРАЦИИ ░░ === | # === ░░ КОНЕЦ БЛОКА: ФАЙЛ КОНФИГУРАЦИИ ░░ === | ||
+ | |||
+ | # === ░░ ФУНКЦИЯ МОНТИРОВАНИЯ NAS ░░ === | ||
+ | mount_nas() { | ||
+ | local mount_point="/ | ||
+ | echo "📁 Проверка каталога: | ||
+ | sudo mkdir -p " | ||
+ | |||
+ | echo "🌐 Проверка ресурса // | ||
+ | if ! ping -c 1 -W 1 " | ||
+ | echo "❌ Хост $NAS_IP недоступен по сети." | ||
+ | return | ||
+ | fi | ||
+ | |||
+ | if mountpoint -q " | ||
+ | local current_source expected_source | ||
+ | current_source=$(findmnt -n -o SOURCE --target " | ||
+ | expected_source="// | ||
+ | |||
+ | if [[ " | ||
+ | echo "✅ Ресурс уже примонтирован: | ||
+ | echo " | ||
+ | return | ||
+ | else | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo "" | ||
+ | echo "1 - 🔄 Отмонтировать и примонтировать заново" | ||
+ | echo "2 - 📁 Примонтировать в другой каталог" | ||
+ | echo "0 - ❌ Отмена" | ||
+ | read -rp "👉 Ваш выбор: " choice | ||
+ | |||
+ | case " | ||
+ | 1) | ||
+ | echo "🔌 Отмонтирование $mount_point..." | ||
+ | sudo umount " | ||
+ | ;; | ||
+ | 2) | ||
+ | read -rp "📂 Введите альтернативный каталог (например: | ||
+ | [[ -z " | ||
+ | mount_point=" | ||
+ | sudo mkdir -p " | ||
+ | ;; | ||
+ | *) | ||
+ | echo " | ||
+ | return | ||
+ | ;; | ||
+ | esac | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | echo "🔗 Монтирование ресурса..." | ||
+ | if sudo mount -t cifs "// | ||
+ | -o username=" | ||
+ | echo "✅ Успешно примонтировано в $mount_point" | ||
+ | else | ||
+ | echo "❌ Ошибка монтирования." | ||
+ | fi | ||
+ | } | ||
+ | # === ░░ КОНЕЦ ФУНКЦИИ ░░ === | ||
# === ░░ БЛОК: МЕНЮ ПОЛЬЗОВАТЕЛЯ ░░ === | # === ░░ БЛОК: МЕНЮ ПОЛЬЗОВАТЕЛЯ ░░ === | ||
Строка 66: | Строка 152: | ||
continue | continue | ||
fi | fi | ||
- | | + | |
- | + | ||
- | 4) | + | |
- | if [[ " | + | |
- | echo "🔓 Разовое подключение без сохранения конфигурации" | + | |
- | read -rp "🌐 IP NAS-сервера: | + | |
- | read -rp "📂 Имя расшаренной папки: " SHARE_NAME | + | |
- | read -rp "👤 Имя пользователя: | + | |
- | read -rsp "🔑 Пароль: | + | |
- | echo "" | + | |
- | fi | + | |
- | + | ||
- | # === ░░ БЛОК: ПОДКЛЮЧЕНИЕ NAS ░░ === | + | |
- | MOUNT_POINT="/ | + | |
- | echo "📁 Проверка каталога: | + | |
- | sudo mkdir -p " | + | |
- | + | ||
- | echo "🌐 Проверка ресурса // | + | |
- | if ! ping -c 1 -W 1 " | + | |
- | echo "❌ Хост $NAS_IP недоступен по сети." | + | |
- | continue | + | |
- | fi | + | |
- | + | ||
- | if mountpoint -q " | + | |
- | CURRENT_SOURCE=$(findmnt -n -o SOURCE --target " | + | |
- | EXPECTED_SOURCE="// | + | |
- | + | ||
- | if [[ " | + | |
- | echo "✅ Ресурс уже примонтирован: | + | |
- | echo " | + | |
- | continue | + | |
- | else | + | |
- | echo " | + | |
- | echo " | + | |
- | echo " | + | |
- | echo "" | + | |
- | echo "1 - 🔄 Отмонтировать и примонтировать заново" | + | |
- | echo "2 - 📁 Примонтировать в другой каталог" | + | |
- | echo "0 - ❌ Отмена" | + | |
- | read -rp "👉 Ваш выбор: " choice | + | |
- | + | ||
- | case " | + | |
- | 1) | + | |
- | echo "🔌 Отмонтирование $MOUNT_POINT..." | + | |
- | sudo umount " | + | |
- | ;; | + | |
- | 2) | + | |
- | read -rp "📂 Введите альтернативный каталог (например: | + | |
- | [[ -z " | + | |
- | MOUNT_POINT=" | + | |
- | sudo mkdir -p " | + | |
- | ;; | + | |
- | *) | + | |
- | echo " | + | |
- | continue | + | |
- | ;; | + | |
- | esac | + | |
- | fi | + | |
- | fi | + | |
- | + | ||
- | echo "🔗 Монтирование ресурса..." | + | |
- | if sudo mount -t cifs "// | + | |
- | -o username=" | + | |
- | echo "✅ Успешно примонтировано в $MOUNT_POINT" | + | |
- | else | + | |
- | echo "❌ Ошибка монтирования." | + | |
- | fi | + | |
- | # === ░░ КОНЕЦ БЛОКА: ПОДКЛЮЧЕНИЕ NAS ░░ === | + | |
;; | ;; | ||
Строка 150: | Строка 169: | ||
echo "❎ Отмена удаления." | echo "❎ Отмена удаления." | ||
fi | fi | ||
+ | ;; | ||
+ | |||
+ | 4) | ||
+ | echo "🔓 Разовое подключение без сохранения конфигурации" | ||
+ | read -rp "🌐 IP NAS-сервера: | ||
+ | read -rp "📂 Имя расшаренной папки: " SHARE_NAME | ||
+ | read -rp "👤 Имя пользователя: | ||
+ | read -rsp "🔑 Пароль: | ||
+ | echo "" | ||
+ | mount_nas | ||
;; | ;; | ||
Строка 159: | Строка 188: | ||
done | done | ||
# === ░░ КОНЕЦ БЛОКА: МЕНЮ ПОЛЬЗОВАТЕЛЯ ░░ === | # === ░░ КОНЕЦ БЛОКА: МЕНЮ ПОЛЬЗОВАТЕЛЯ ░░ === | ||
+ | |||
</ | </ | ||
+ | |||
+ | ===== ******* ===== | ||
+ | [[https:// |
projects/linux/manual_backup_scripts/mount_nas.1744011075.txt.gz · Последнее изменение: 2025/04/07 10:31 —