Назад | Перейти на главную страницу

xcopy нелогично?

Я хочу использовать XCOPY для простого копирования скрипта для «синхронизации» одной папки с другой каждую ночь.

XCOPY C:\hyper-v\VHD\*.avhd Z:\BACKUP\HYPERV_VMs /s /d /c

Я не могу получить никаких подсказок. Когда я выбираю параметр / y, xcopy перезаписывает все (115 ГБ), так что ничего хорошего. Я не вижу другой возможности отключить подсказку и НЕ перезаписывать существующие файлы.

(Если у вас есть предложение использовать другую команду, будь моим гостем, возможно, тогда скорректируйте существующий пример)

Заранее спасибо!

Robocopy имеет гораздо больше возможностей и встроен в самые последние версии Windows.

robocopy source-dir destination-dir filespec /E /XC /XN /XO 

Это будет копировать только те файлы, которые соответствуют filespec (например, * .avhd в вашем примере) из исходного каталога (c: \ Hyper-V \ vhd в вашем примере) в destdir (z: \ backup \ hyperv_vms). Переключатели говорят ему пропускать старые, новые и измененные файлы, чтобы он только копировать файлы, существующие в исходном каталоге, но не существующие в целевом каталоге.

Я использую xcopy / d / e / c / k / y / v / o, который не предлагает никаких запросов и не перезаписывает существующие файлы, если источник совпадает с датой назначения.

В /M Параметр указывает ему копировать только файлы с установленным атрибутом «Архив» и одновременно сбрасывает этот атрибут.

Бит «архив» является частью файловой системы, как бит «Только чтение» или бит «Системный файл». Он традиционно использовался для старомодного «наивного» программного обеспечения для резервного копирования, чтобы он мог определить, был ли файл изменен с момента его последнего архивирования. ОС должна включать бит архива при каждом изменении файла (или устанавливать его для вновь созданных файлов), а затем программа резервного копирования создает резервную копию файла и отключает бит, чтобы показать, что он был заархивирован.

Вы можете увидеть, установлено ли это для ваших файлов, перейдя в папку в командной строке и запустив attrib любые файлы, помеченные буквой «A» в первом столбце, ожидают архивации.

я хотел бы использовать rsync для этого. Вы можете скачать Windows-совместимый двоичный файл или получить его как часть Cygwin (я рекомендую первый подход, если у вас еще не установлен Cygwin). Вы можете либо отправить файлы на удаленный сайт, либо получить с него. Я предпочитаю метод вытягивания, но подойдет любой.

Используя метод pull, на исходном сервере будет запущен демон rsync; используя push, демон rsync будет запущен на конечном сервере. Вот пример файла конфигурации демона извлечения:

max connections = 4
port           = 873
read only      = true
write only     = false
auth users     = syncman
secrets file   = /etc/rsyncd.secrets
strict modes   = false
hosts allow    = 192.168.1.8
refuse options = delete

[ProjectOne]
comment = Jimmy's Project
path    = C:/projects/project_one

[MutualProject]
comment = The MUTUAL project
path    = C:/paid_projects/mutual

То, как вы укажете путь, будет зависеть от того, какой порт rsync вы используете (например, cygwin указывает пути, подобные этому: / cygdrive / c / projects / project_one). Затем вы должны выполнить эту команду с сервера:

rsync -a -v 192.168.1.15:ProjectOne backups/ProjectOne

(где IP-адрес - это IP-адрес исходного компьютера). Если сервер резервного копирования - это Windows, вам понадобится одна из многих реализаций cron-for-windows.

Если вам нужно создать собственную инкрементную резервную копию, я бы посоветовал найти версию rsync, которая работает с Windows, или установить Cygwin с портом rsync. Он предназначен для этого и имеет гораздо больше возможностей, чем xcopy.

Если я сделаю

xcopy junk*.* \TEMP /s /d /c /y

он ничего не делает во второй раз, когда я запускаю его, поэтому не уверен, почему ваш каждый раз повторно копирует файлы?

Мне кажется, что одни и те же файлы на разных серверах имеют время, которое "немного отключается" - может ли это быть причиной?