Синхронизация сетевых папок по SSH на Linux Ubuntu с помощью rsync


Опубликовано: 29 / 01 / 2023

Синхронизация сетевых папок по SSH на Linux Ubuntu с помощью rsync

Встала необходимость ежедневной синхронизации сетевых папок файлхранилища организации на сервер BACKUP  (Linux Ubuntu)

Для начала установим утилиты для монтирования сетевых папок:

sudo apt-get install cifs-utils

Соглашаемся со всеми вопросами и устанавливаем.

Далее нам неодходимо создать папку, точку монтирования целевого сетевого каталога у нас в системе.
У меня она это так делается:

sudo mkdir /home/mount

Монтируем сюда сетевой каталог:

sudo mount.cifs //192.168.0.1/Share/ /home/mount/ -o user=*,password=*

sudo mount.cifs //ПАПКА_ИСТОЧНИК_СЕТЕВОГО_РЕСУРСА /ЛОКАЛЬНАЯ_ПАПКА_ТОЧКА_МОНТИРОВАНИЯ_СЕТЕВОГО_РЕСУРСА -o user=(ПОЛЬЗОВАТЕЛЬ_УДАЛЕННОЙ_ПАПКИ, ЕСЛИ РАЗРЕШЕНО ВСЕМ, ТО *-звездочка),password=(ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_УДАЛЕННОЙ_ПАПКИ, ЕСЛИ РАЗРЕШЕНО ВСЕМ, ТО *-звездочка) 
Между комбинациями user и password стоит запятая без пробелов

Добавляем автомонтирование при загрузке:

sudo nano /etc/fstab

Вписываем на самую последнюю строчку:

//192.168.1.152/share/ /home/mount cifs defaults 0 0

//СЕТЕВОЙ_КАТАЛОГ/ /ЛОКАЛЬНЫЙ_КАТАЛОГ_ТОЧКА_МОНТИРОВАНИЯ/ ОСТАЛЬНОЕ БЕЗ ИЗМЕНЕНИЙ

Ctrl+O - соглашаемся, выходим.

Создаем скрипт синхронизации:

sudo nano /home/rsync.sh

Туда пишем:

#!/bin/bash
naznachenie='/home/mirror/tmp/'
istochnik='/home/mount'
rsync -az --delete --exclude=”*Thumbs.db” $istochnik $naznachenie

a – заменяет ряд ключей (-rlptgoD):
r – рекурсивная синхронизация вместе с вложенными папками
l – при синхронизации сохранять символические ссылки
p – сохранять права на файлы
t – сохранять время изменения
g – сохранять группу
o – сохранять владельца
D – сохранять файлы девайса и специальны файлы (я так понимаю, что это речь о сохранении скрытых файлов и файлов типа .listing)
v – показывать информацию о ходе синхронизации. Просто по умолчанию rsync запускается в фоновом режиме. А с этим флагом будет работать как обычная программа и выдавать название каждого синхронизируемого файла. Так же можно написать -vv, тогда информации будет выдано еще больше.
z – при копировании сжимает данные. Если синхронизируем архивы, то лучше наверное не использовать.
--exclude=”*Thumbs.db” - запрещает копирование Виндового мусора типа скрытых файлов Thumbs.db
--delete - удаление в папке назначения тех файлов и папок, которых нет в источнике

Назначим нашему скрипту синхронизации права на исполнение:

sudo chmod +x /home/rsync.sh

Далее пропишем в CRON расписание запуска этого скрипта:

sudo crontab -e

В самом низу пишем:

0 0 * * * /home/rsync.sh

Я настроил ежедневный запуск скрипта в 0 часов 00 минут
Сохраняем и выходим. Готово.
Чуть позже я распишу как создавать бекапы и сохранять их в папки с датами в названиях папок и автоочисткой папок которые старее 30 дней.

<< Вернуться к списку статей

Предлагаем аутсорсинг ИТ-услуг

Закажите техническую поддержку и администрирование:

Офисной инфраструктуры

корпоративных компьютерных и локальных сетей, виртуальных и реальных рабочих мест сотрудников

Сервисов резервного копирования

корпоративной почты, телефонии, CRM-система и других служб

Офисной печати

документов и копировально-множительной техники

Отдельных подразделений

удаленных офисов и филиалов в Краснодаре

Комплексный IT-аутсорсинг в Краснодаре


Восемь технических специалистов

Вы никогда не останетесь без помощи. В отличие от штатного системного администратора, мы не уходим в отпуск и всегда поддерживаем связь с клиентами.

Горячая линия для приема заявок

12 часов в сутки, 7 дней в неделю в офисе дежурит специалист, который ответит вам. 75 % вопросов решаем по телефону за 15 минут

Постоянный мониторинг систем

Вы вовремя будете предупреждены о возможных проблемах. Наблюдаем за работой техники, избегаем внезапных поломок и других непредвиденных ситуаций

Подменный фонд оборудования

Вы будете работать без простоев. Если сломается принтер, роутер или другая оргтехника, предоставим замену на время ремонта.

Отзывы


Тиньков О.В.
Петров А.В.