Автоматическая синхронизация FTP с Windows с помощью WinSCP

Зачем это нужно
Резервное копирование данных — базовая страховка от потери информации. FTP и SFTP остаются удобным способом хранения файлов на удалённом сервере. Если ваш хост не предоставляет автоматических резервных копий или вы не хотите платить за облачные сервисы — простая синхронизация через WinSCP решает задачу бесплатно.
Ключевые преимущества:
- Полный контроль данных на своей стороне.
- Автоматизация без сторонних платных сервисов.
- Лёгкая настройка и гибкие опции трансфера.
Важно: FTP передаёт данные в открытом виде. Если есть возможность, используйте SFTP (шифрованный канал). SFTP работает через порт 22, FTP — обычно через порт 21.
Требования
- FTP или SFTP сервер и учётные данные (адрес, логин, пароль).
- Компьютер с Windows.
- Установленный WinSCP (Windows).
Подготовка WinSCP
- Скачайте и установите WinSCP с официального сайта.
- Запустите WinSCP и создайте новую сессию: укажите хост, порт, логин и пароль.
- Выберите тип протокола: FTP или SFTP. Если доступен SFTP — предпочтите его.
- Нажмите “Save” (Сохранить), дайте профилю понятное имя.
- Откройте сохранённый профиль, чтобы проверить соединение.


Создание скрипта синхронизации
Мы создадим простой скрипт для WinSCP, который подключится к серверу, перейдёт в нужную директорию, синхронизирует файлы в бинарном режиме и запишет лог.
- Откройте Блокнот (Notepad).
- Скопируйте шаблон и сохраните как файл sync.txt в удобной папке на локальном диске (например, f:\backup\sync.txt).
option batch on
option confirm off
open patrickbisch@ftp.howtogeek.com
cd backups
option transfer binary
get /testremote* f:\backups\testlocal\*
synchronize local f:\backups\testlocal testremote
exitПояснение команд (одно предложение на каждую):
- option batch on — отключает интерактивные запросы, чтобы скрипт не останавливался.
- option confirm off — автоматически подтверждает перезапись файлов.
- open user@host — открывает сессию; при сохранённом профиле можно указать его имя вместо user@host.
- cd backups — смена удалённой директории на сервере.
- option transfer binary — бинарный режим передачи (рекомендуется для любых двоичных файлов).
- get /testremote f:\backups\testlocal\ — пример команды загрузки отдельных файлов.
- synchronize local f:\backups\testlocal testremote — синхронизирует удалённую папку testremote с локальной.
- exit — завершает работу WinSCP.
Совет: сначала протестируйте на тестовых папках, как описано ниже. Это предотвратит случайную потерю данных.
Рекомендации по структуре директорий для теста
- На сервере создайте папку testremote (в корне или в нужном месте).
- На компьютере создайте папку f:\backups\testlocal.
- Поместите в testremote один текстовый файл типа thisisatest.txt и запустите скрипт вручную или через WinSCP для проверки.
Автоматизация через Планировщик задач Windows
Мы будем запускать WinSCP с аргументами: укажем режим консоли, путь к скрипту и путь к лог-файлу.
- Откройте Панель управления → Система и безопасность → Администрирование → Планировщик задач.

- Нажмите “Create Basic Task” (Создать простую задачу).

- Дайте задаче имя и описание, затем Next.

- Выберите триггер: при входе в систему, при запуске компьютера, ежедневно/еженедельно и т. д. Для частых обновлений можно выбрать “At startup” (При запуске).

- В качестве действия выберите “Start a program” (Запустить программу). В поле Program/Script укажите путь к WinSCP.exe, обычно “C:\Program Files\WinSCP\WinSCP.exe”. В поле Add arguments введите:
/console /script=f:\backup\sync.txt /log=f:\backup\log.txtЗамените пути на свои, если вы сохранили файлы в другом месте. Параметр /console запускает консольную версию, /script указывает файл со списком команд, /log сохраняет лог выполнения.

- Сохраните задачу и запустите её вручную для проверки (в Планировщике выберите задачу → Run).

После выполнения проверьте локальную папку. Если файл появился — настройка успешна. При ошибках откройте указанный лог-файл и изучите сообщения.
Критерии приёмки
- Скрипт запускается без интерактивных запросов.
- Файлы из testremote копируются в локальную папку полностью и корректно.
- В лог-файле отсутствуют критические ошибки.
- Скрипт выполняется по расписанию (проверено минимум два запуска).
Тестовые сценарии и контроль качества
- Положите файл размером 1 КБ, запустите задачу, проверьте наличие и целостность.
- Измените файл на сервере — убедитесь, что локальная копия обновилась.
- Удалите файл на сервере — при синхронизации локальная копия должна остаться (synchronize local по умолчанию копирует удалённое содержимое в локальную папку; настройте поведение, если нужен зеркальный режим).
- Проверьте поведение при сетевой ошибке: должен быть записан лог с описанием проблемы.
Безопасность и приватность
- По возможности используйте SFTP вместо FTP, чтобы шифровать логин, пароль и данные.
- Никогда не храните учётные данные в открытом виде в скриптах; используйте сохранённые сессии WinSCP с настроенными ключами или менеджер паролей.
- Ограничьте права доступа к локальной папке с бэкапами (NTFS разрешения).
- Если вы работаете с персональными данными пользователей, проверьте требования локального законодательства и политику хранения данных.
Important: если ваш FTP-сервер открыт в интернет, удостоверьтесь, что доступ к нему ограничен по IP или защищён сильными паролями.
Когда этот метод не подойдёт (ограничения)
- Большие объёмы данных (несколько сотен гигабайт) — перенос по FTP может быть медленным и ненадёжен; рассмотрите rsync, облачные решения или специализированные бэкап-агенты.
- Требования к дедупликации и сохранению истории версий — WinSCP синхронизация только копирует файлы, она не хранит версионность.
- Необходимость шифрования «на диске» — WinSCP не шифрует локальные файлы.
Альтернативные подходы
- rsync (через Cygwin или WSL) для более эффективной синхронизации дельт.
- Rclone — для синхронизации с облачными провайдерами.
- Специализированные решения бэкапа (Veeam, Duplicati, Duplicacy) для датасторов и версионных бэкапов.
Руководство по отладке (короткий чеклист)
- Шаг 1: Запустите WinSCP вручную с тем же профилем и посмотрите, работает ли соединение.
- Шаг 2: Запустите sync.txt вручную через WinSCP (двойной клик по WinSCP -> Session -> Execute script) или командно.
- Шаг 3: Проверьте лог-файл, указанный в параметре /log.
- Шаг 4: Убедитесь, что Планировщик задач запускается от пользователя с правами доступа к указанным папкам.
- Шаг 5: Если используются сетевые диски, убедитесь, что задача выполняется после подключения сетевых томов (может потребоваться запуск от входа пользователя).
Примеры настроек для частых сценариев
- Только загрузка новых и изменённых файлов: use synchronize local.
- Зеркальное копирование (удаление локальных файлов, которых нет на сервере): используйте synchronize remote или дополнительные параметры, но применяйте с осторожностью.
Чек-лист для администратора
- Проверить доступность SFTP/FTP и портов (21/22).
- Создать тестовые папки и файлы.
- Настроить и протестировать профиль в WinSCP.
- Написать и протестировать sync.txt локально.
- Настроить Планировщик задач и проверить запуск.
- Настроить ротацию логов (по необходимости).
- Проверить права доступа к локальным бэкап-папкам.
Итоги
Вы получили простую и бесплатную схему для автоматической синхронизации файлов с FTP/SFTP на Windows с помощью WinSCP и Планировщика задач. Это практичное решение для регулярных резервных копий небольших и средних наборов файлов. Для производства и больших объёмов данных рассмотрите более мощные инструменты.
Summary:
- Настройте профиль в WinSCP и протестируйте соединение.
- Создайте скрипт sync.txt и проверьте его вручную.
- Запланируйте запуск через Планировщик задач с аргументами /console /script=… /log=….
Notes: всегда тестируйте на контрольных данных и храните критичные бэкапы в нескольких независимых местах.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone