Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование по сети (http://forum.oszone.net/showthread.php?t=324369)

d.makarov 02-03-2017 09:54 2715945

Копирование по сети
 
Всем привет!
Сразу прошу прощения если данная тема уже поднималась. Много гуглил, в том числе и на этом форуме, но ничего не помогло, так как я в этом деле полный нуб.
Есть сетевая стора, на ней есть папки общего доступа, подключенные на компы пользователей.
Есть задача, в целях обеспечения сохранности данных делать резервную копию общих папок со сторы на сервер. И стора и сервер находятся в одной подсети.
Подскажите какой командой (copy, xcopy, robocopy или еще какой) и с какими атрибутами сделать батник, чтобы копировать только новые или измененные файлы и папки и оставлять те, которые были удалены со сторы?

Заранее всем огромное спасибо!

megaloman 02-03-2017 11:09 2715970

Цитата:

Цитата d.makarov
Много гуглил, в том числе и на этом форуме, но ничего не помогло »

Читаем описание команд, например xcopy /? Там всё написано. Как пример (и батник не нужен)
Код:

xcopy /D /E /C /H /R /Z /Y "\\ServerFrom\ShrFrom\*.*" "\\ServerTo\ShrTo\"
Насколько я понимаю, хочется сделать автоматическое копирование, по видимому, в назначенном задании. Какой сервер из этих двух это сделает? Для него лучше сетевой путь заменить на локальный. Или это третья машина?

d.makarov 02-03-2017 16:53 2716087

Спасибо за ответ.
Для лучшего понимания опишу ситуацию подробнее.
Имеется сервер и имеется сетевое хранилище My Book Live. На сетевом хранилище есть 3 общедоступных папки с ограниченным доступом (то есть в настройках хранилища есть несколько пользователей с распределенными правами каждому в свою папку и админская учетка с доступом во все папки). В целях обеспечения сохранности содержимого папок, хочу делать бекап этих трех папок с сетевого хранилища на сервер. Хочу сделать батник и запихнуть его в шедулер, чтоб он отрабатывал по заданному расписанию и копировал содержимое папок с сетевого хранилища на сервер. При этом надо чтоб копировались все новые файлы и существующие измененные файлы, а в случае удаления какого либо файла из сетевого хранилища, чтоб он оставался в резервной копии на сервере.

megaloman 02-03-2017 18:28 2716111

d.makarov, То есть, имеется сервер, на который необходимо батником, который исполняется планировщиком этого сервера,
скопировать с сетевого хранилища \\Store
несколько папок
\\Store\User1
\\Store\User2
\\Store\User3
......
в указанное на этом сервере место Z:\Box_Arc
в папки
Z:\Box_Arc\User1
Z:\Box_Arc\User2
Z:\Box_Arc\User3
.....
Вариант 1
Код:

@Echo Off

xcopy /D /E /C /H /R /Y /Z "\\Store\User1\*.*" "Z:\Box_Arc\User1\"
xcopy /D /E /C /H /R /Y /Z "\\Store\User2\*.*" "Z:\Box_Arc\User2\"
xcopy /D /E /C /H /R /Y /Z "\\Store\User3\*.*" "Z:\Box_Arc\User3\"

Вариант 2
Код:

@Echo Off

Set "From=\\Store"
Set "To=Z:\Box_Arc"

Set "PRG=xcopy /D /E /C /H /R /Y /Z"

Call  :PrgCopy "User1"  "User1"
Call  :PrgCopy "User2"  "User2"
Call  :PrgCopy "User3"  "User3"

goto :Eof

:PrgCopy
        %PRG% "%From%\%~1\*.*" "%To%\%~2\"

Вариант ничем не отличается от первого, просто написана попдпрограмма, при вызове которой не надо писать ни команду, ни общую часть путей копируемой папки. То есть, вызов подпрограммы копирования куда короче, чем xcopy с ключами и путями, что делает работу батника более наглядной и позволяет легче изменить общие пути - только в одном месте.

d.makarov 03-03-2017 15:33 2716368

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

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


Время: 16:40.

Время: 16:40.
© OSzone.net 2001-