Содержание

Пошаговое руководство для организации надёжного подключения к удалённой SMB/CIFS-шаре.

Весь процесс будет состоять из следующих этапов:

  1. Подготовка системы и установка пакетов.
  2. Базовое монтирование шары.
  3. Настройка автоматического монтирования с использованием файла учётных данных.
  4. Тонкая настройка монтирования для бэкапов (права доступа и производительность).
  5. Устранение потенциальных проблем.
  6. Дополнительные опции для гибкой системы.

⚙️ Шаг 1: Подготовка системы и установка пакетов

Для подключения к шаре по протоколу SMB/CIFS нам понадобится пакет cifs-utils. Выполните в терминале:

sudo apt update
sudo apt install cifs-utils

Создайте точку монтирования, куда будет примонтирована шара для бэкапов:

sudo mkdir -p /mnt/backup

🔌 Шаг 2: Ручное монтирование для проверки

Прежде чем настраивать автоматическое монтирование, стоит убедиться, что подключение работает. Используйте команду:

sudo mount -t cifs //SERVER_ADDRESS/SHARE_NAME /mnt/backup -o username=YOUR_USERNAME,password=YOUR_PASSWORD

Подключение медсинтез:
sudo mount -t cifs //192.168.210.6/Lims_backup_sql /mnt/backup -o username=lims,password=glnm2lH}

Пояснение параметров:

После этого проверьте, что шара примонтировалась успешно:

df -h | grep backup
ls -la /mnt/backup

🔐 Шаг 3: Настройка автоматического монтирования при загрузке

Для автоматического монтирования при старте системы и для бэкапов по расписанию, необходимо внести запись в файл /etc/fstab.

3.1. Безопасное хранение пароля (файл учётных данных)

Хранить пароль в открытом виде в /etc/fstab небезопасно. Вместо этого, создадим файл с учётными данными.

Создайте файл, например, /etc/samba/backup.cred:

sudo mkdir -p /etc/samba
sudo nano /etc/samba/backup.cred

Впишите в него ваши учётные данные:

username=YOUR_USERNAME
password=YOUR_PASSWORD

Теперь ограничьте доступ к этому файлу, чтобы его мог читать только root:

sudo chmod 600 /etc/samba/backup.cred

3.2. Добавление записи в /etc/fstab

Теперь примонтируем шару с использованием файла учётных данных и нужных опций. Откройте /etc/fstab для редактирования:

sudo nano /etc/fstab

Добавьте в конец файла следующую строку:

\\192.168.210.6\Lims_backup_sql /mnt/backup cifs credentials=/etc/samba/backup.cred,uid=0,gid=0,file_mode=0600,dir_mode=0700,x-systemd.automount 0 0

Проверим каждый параметр детально:

1. Размонтирование текущей шары

Используйте команду umount (обратите внимание: нет буквы "n" перед "mount"). Укажите точку монтирования или устройство:

sudo umount /mnt/backup

Если занято (например, вы находитесь внутри папки или какой-то процесс использует файлы), можно принудительно размонтировать:

sudo umount -l /mnt/backup   # ленивое размонтирование (после завершения операций ввода-вывода)
# или
sudo umount -f /mnt/backup   # форсированное размонтирование (не всегда работает для CIFS)

2. Проверка, что шара действительно размонтирована

mount | grep backup
ls -la /mnt/backup   # теперь должна показывать содержимое локальной пустой папки (или что там было до монтирования)

3. Монтирование через /etc/fstab

После исправления строки в /etc/fstab (с прямыми слешами) и размонтирования существующей шары, выполните:

sudo mount -a

Эта команда смонтирует все файловые системы из fstab, которые ещё не смонтированы. Она прочитает вашу новую запись и попробует подключить шара.

4. Проверка результата

mount | grep backup
sudo df -h /mnt/backup
sudo ls -la /mnt/backup

Если всё правильно, вы увидите примонтированную шару и её содержимое.

Альтернативный способ (без размонтирования)

Если вы просто хотите проверить, что запись в fstab корректна, но текущее ручное монтирование вам не мешает, можно не размонтировать, а попробовать перемонтировать специальной командой:

sudo mount -o remount /mnt/backup

Но эта команда применит опции из fstab только если точка монтирования уже была добавлена через fstab. Для ручного монтирования она не сработает. Поэтому надёжнее — размонтировать и выполнить mount -a.

Полезный совет

Если после sudo mount -a монтирование не происходит, но ошибок нет, попробуйте принудительно вызвать монтирование конкретной записи:

sudo mount /mnt/backup   # mount сам найдёт запись в fstab по точке монтирования

Так вы увидите точную ошибку.

После успешной проверки можете оставить автоматическое монтирование как есть — при перезагрузке шара поднимется сама (благодаря x-systemd.automount).

### ⚡️ Шаг 4: Дополнительные опции для бэкапов

При работе с бэкапами на Samba-шару, особенно с большими файлами, могут пригодиться эти опции. Добавьте их в строку `fstab` в раздел опций (через запятую).

1.  **`nodfs`**: может ускорить работу при некоторых конфигурациях.
2.  **`vers=3.0`**: принудительно использует протокол SMB версии 3.0. Это более современный и производительный протокол. Старые серверы могут работать с `vers=2.0` или `vers=2.1`.
3.  **`rsize` и `wsize`**: размер блока для чтения и записи. Экспериментальные значения (например, `rsize=65536, wsize=65536`) могут повысить производительность. Без явного указания система сама подбирает оптимальные значения.
4.  **`noserverino`**: может потребоваться, если SMB-сервер генерирует некорректные идентификаторы индексных дескрипторов (inode), что вызывает ошибки при копировании.

Пример улучшенной строки в `fstab`:

//SERVER_ADDRESS/SHARE_NAME /mnt/backup cifs credentials=/etc/samba/backup.cred,uid=0,gid=0,file_mode=0600,dir_mode=0700,vers=3.0,x-systemd.automount,noserverino 0 0
### 🔄 Шаг 5: Применение конфигурации

После редактирования `/etc/fstab` выполните команды, чтобы перечитать конфигурацию и применить настройки:

```bash
# Перечитать конфигурацию systemd и применить изменения
sudo systemctl daemon-reload

# Примонтировать все файловые системы из fstab
sudo mount -a

# Проверить, что шара примонтировалась
mount | grep cifs

🩺 Шаг 6: Диагностика распространённых проблем

  * **''mount error(13): Permission denied''**: обычно указывает на неверное имя пользователя/пароль в файле ''/etc/samba/backup.cred''. Проверьте также права доступа к этому файлу (''sudo chmod 600 ...'').
  * **''mount error(115): Operation now in progress''**: система не может установить соединение с SMB-сервером. Проверьте сеть, доступность сервера (''ping SERVER_ADDRESS'') и правильность адреса шары в ''/etc/fstab''.
  * **Сервер шары не поддерживает SMB1**: используйте опцию ''vers=3.0''.
  * **Ошибки прав доступа при записи бэкапов**: убедитесь, что в ''/etc/fstab'' указаны ''uid=0, gid=0''. 

🚀 Шаг 7: Дополнительные возможности

Настройка бэкапирования в смонтированную директорию

#Backup configs to cloud file storage
0  */7  * * *  root /home/dumps/backup_config.sh >> /home/dumps/progs_conf/backup.log 2>&1 1>&1 0>&1
#!/bin/bash
echo "date +'%m-%d-%Y'"
/usr/bin/rsync -av --progress  /srv/ /mnt/backup/srv/
/usr/bin/rsync -av --exclude "*.hprof"  --progress  /home/runner/assist/ /mnt/backup/assist/
/usr/bin/rsync -av   --progress  /etc/nginx/sites-enabled/  /home/dumps/progs_conf/
/usr/bin/rsync -av   --progress  /etc/supervisor/cond.d/ /home/dumps/progs_conf/
/usr/bin/rsync -av   --progress  /etc/zabbix /home/dumps/progs_conf/
/usr/bin/rsync -av   --progress --include "*.conf" /etc/postgresql /home/dumps/progs_conf/
sudo -u postgres psql -U postgres -d postgres -c "\l" > /home/dumps/postgres_configuration
sudo -u postgres psql -U postgres -d postgres -c "SHOW config_file" >> /home/dumps/postgres_configuration
sudo -u postgres psql -U postgres -d postgres -c "select * from pg_settings" >> /home/dumps/postgres_configuration
#sudo -u medsyn_back /usr/bin/rsync -av --progress /home/dumps medsyn_back@demo.odgassist.ru:/mnt/nfs/meds_lims/
/usr/bin/rsync -av   --delete --progress  /home/dumps/ /mnt/backup/dumps/