Я могу просто использовать графический интерфейс WinSCP, чтобы скопировать папку с сервера Linux локально на сервер Windows для резервного копирования, используя опцию «только обновленные файлы / папки» (своего рода rsync).
Я хотел бы использовать утилиту командной строки WinSCP или что-то подобное, что я могу запланировать через планировщик задач Windows, чтобы каждую ночь захватывать папку (плюс подпапки / файлы) с сервера Linux и сохранять ее на сервере Windows.
Я просмотрел документацию WinSCP, но мне страшно пробовать какие-либо команды, не зная, какие именно запускать и т. Д., Потому что последнее, чего я хочу, - это случайно записать файлы в неправильном направлении.
Любой, кто может сообщить мне команды WinSCP (или аналогичную утилиту), которые я могу запланировать, чтобы сделать следующее:
Скопируйте папку / подпапку / файлы (только новые или обновленные) из «/ shared / svnrepos» на сервере Linux в «\ WINSERVER \ BACKUP»
Я думаю, что документация объясняет это довольно ясно: http://winscp.net/eng/docs/scriptcommand_synchronize
Вы хотите использовать команду synchronize вместо команды get.
Когда первый параметр является локальным, изменения из удаленного каталога применяются к локальному каталогу. Когда первый параметр - remote, изменения из локального каталога применяются к удаленному каталогу.
Как видите, риск повреждения файлов серверов очень невелик, если вы используете локальную синхронизацию, поскольку она берет удаленный каталог и применяет его к вашему локальному каталогу.
Я бы создал файл сценария, а затем добавил бы запланированную задачу для вызова WinScp с помощью:
WinScp.exe /script="d:\SvnBackupScript.txt "
Затем поместите в файл сценария что-то вроде следующего:
синхронизировать локальный d: \ svnBackup / shared / svnrepos
Убедитесь, что у вас есть конфигурация и настройка подключения в соответствии с документацией.
Вы всегда можете запустить его в режиме cosole и протестировать свои команды:
WinScp.exe / консоль
Затем просто введите нужные команды в свой сценарий
Может быть rclone (https://rclone.org/commands/rclone_sync/) стоит попробовать. Написано на Go, имеет несколько двоичных файлов (включая Windows) и позволяет синхронизировать каталоги из Linux в Windows с использованием нескольких протоколов, включая SSH.
Вы должны сначала настроить его (то есть определить псевдоним удаленного хоста, протокол и учетные данные), а затем выполнить из командной строки:
rclone sync remoteserveralias:/the/dir/path localpath
ВНИМАНИЕ: Поскольку sync
удаляет файлы в месте назначения (пытается иметь две идентичные копии - удаленную и локальную), более безопасным подходом является использование copy
команда, которая дифференциально копирует файлы из источника в место назначения без какого-либо удаления.