Автоматизация синхронизации файлов с вашего сервера на Synology с помощью n8n и rsync
✎Источник: Noted.lol

Большинство из нас копируют файлы вручную или выполняют одну и ту же команду rsync каждые несколько дней, надеясь, что ничего не пропустили. С помощью n8n и rsync вы можете автоматизировать весь этот процесс.
Перед настройкой рабочего процесса я создал общую папку на своем Synology NAS и подключил ее к своему серверу с помощью Samba. Общая папка была смонтирована по пути /mnt/synomediabackup, что позволило серверу обращаться к ней как к локальному каталогу. После установления этого соединения n8n мог напрямую выполнять rsync между двумя путями без дополнительных сетевых шагов.
Этот маленький момент важен. Без Samba rsync пришлось бы подключаться через SSH или другим удаленным способом. Смонтировав общую папку NAS сначала, все остается локальным и быстрым, а разрешения обрабатываются аккуратно системой.
С этим в порядке n8n берет на себя остальное. Он выполняет синхронизацию, очищает старые файлы, проверяет свободное пространство и отправляет сообщение, когда все завершится. Три узла, одна рутина, решенная навсегда.

Сводка рабочего процесса
| Узел | Тип | Назначение |
|---|---|---|
| 1 | Выполнение команды | Запускает задачу rsync и сообщает о хранилище после синхронизации |
| 2 | Код | Обрабатывает вывод rsync и формирует краткое резюме |
| 3 | HTTP запрос | Отправляет уведомление через ntfy |
| 1. Узел выполнения команды |
Первый узел запускает rsync из вашей основной медиапапки на NAS и проверяет, сколько места осталось после завершения.
rsync -a --delete --stats \
--exclude=$RECYCLE.BIN \
--exclude=.sync \
--exclude=aquota.group \
--exclude=aquota.user \
/mnt/media/TV/TV/ /mnt/synomediabackup/TV/ ; \
echo " "; \
echo "---- Хранилище после синхронизации ----" ; \
df -h /mnt/synomediabackup
Это позволяет поддерживать ваш NAS в идеальном состоянии. Флаг delete удаляет файлы, которых больше нет на вашем сервере, так что вы всегда имеете точную копию. Строки исключений пропускают папки, которые не нужно резервировать. Заключительная команда df -h показывает, сколько свободного места осталось после завершения синхронизации.
2. Узел кода
Второй узел очищает вывод rsync и превращает его в краткое, ясное сообщение.
const output = $json.stdout || "";
// Извлечение созданных (новых) файлов
const createdMatch = output.match(/Number of created files:\s+(\d+)/);
const added = createdMatch ? parseInt(createdMatch[1]) : 0;
// Извлечение удаленных файлов
const deletedMatch = output.match(/Number of deleted files:\s+(\d+)/);
const deleted = deletedMatch ? parseInt(deletedMatch[1]) : 0;
// Извлечение общего объема переданных файлов (байты)
const sentBytesMatch = output.match(/Total transferred file size:\s+([\d,]+)/);
let sentGB = "0 GB";
if (sentBytesMatch) {
const bytes = parseInt(sentBytesMatch[1].replace(/,/g, ""));
const gb = bytes / (1024 ** 3);
sentGB = gb.toFixed(2) + " GB";
}
// Извлечение свободного места (используется столбец Avail из df -h)
const freeMatch = output.match(/\s+(\d+(\.\d+)?[GT])\s+\d+%/i);
const free = freeMatch ? freeMatch[1].toUpperCase() : "Неизвестно";
// Создание однострочного резюме
const summary = `✅ Синхронизация ТВ • Добавлено: ${added} • Удалено: ${deleted} • Отправлено: ${sentGB} • Свободно: ${free}`;
return [{ summary }];
- Узел HTTP запроса
После выполнения рабочего процесса вы получите чистый отчет, который выглядит примерно так:
✅ Синхронизация ТВ • Добавлено: 12 • Удалено: 3 • Отправлено: 5.42 GB • Свободно: 3.7T
Этот отчет будет обработан для отправки push-уведомления на мой iPhone.
Последний узел отправляет это резюме в ntfy, чтобы вы получили сообщение мгновенно после завершения синхронизации.
Здесь вы можете увидеть push-уведомление, которое пришло на мой iPhone. Оно показывает, что было добавлено 29 файлов, 23 файла были удалены и около 50.49 гигабайт было передано, оставив 7.1 терабайта свободного места на NAS. Это быстрый снимок, который сообщает мне все, что мне нужно знать, не открывая панель управления NAS.
Вы можете заметить, что некоторые файлы удаляются во время синхронизации. Это происходит, потому что я запускаю конвертер файлов на сервере, и каждый раз, когда файл изменяется, старая версия на NAS заменяется. Команда rsync поддерживает NAS как идеальное зеркало структуры файлов сервера.
Вы можете подписаться на эту тему на своем телефоне или в браузере. Я подробнее рассказываю о том, как настроить ntfy в n8n здесь:
Уведомления о состоянии жесткого диска на собственном сервере с использованием n8n и ntfyМониторьте ваши диски с помощью n8n и SmartMonTools и получите мгновенные уведомления с помощью ntfy для актуальных обновлений состояния и температуры.
NotedJeremy![]()
Или узнайте больше о Ntfy здесь:
Самостоятельные push-уведомления с Ntfy на iOSУзнайте, как настроить ntfy, службу push-уведомлений на собственном сервере, на iOS с помощью простого обходного пути. Исследуйте, как ntfy делает уведомления простыми, надежными и полностью открытыми.
NotedJeremy![]()
Заключительные заметки и мысли
Эта установка небольшая, но мощная. Общая папка Samba сохраняет все локальным и простым, rsync точно обрабатывает передачу, а n8n все связывает вместе с автоматизацией и обратной связью.
Я мог бы справиться с этим с помощью обычной задачи cron и закончить, но использование n8n дает мне нечто большее. Я могу фактически видеть, что происходит, отслеживать каждый шаг и развивать это с дополнительными функциями, такими как уведомления или даже записывать информацию в таблицу данных, как эта.

Да, вы можете сделать и это. Теперь в n8n есть встроенные таблицы, так что вам больше не нужно подключаться к Google Sheets!
n8n - NotedЯ увлечён n8n, поэтому я сделал это категорией. Вот все, что связано с n8n.
NotedJeremy![]()