Компьютерный форум 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=323297)

Александр_Кот@vk 30-01-2017 12:15 2707461

Перемещение файлов по сети
 
Добрый день! Нужно переместиь бэкапы с сервера на другую машину.

Xcopy \\SQL\BackUp\\*.bak f:\SQL\*.bak /d - копирование делается нормально, но из-за большого веса файлов, нужно именно перемещение.

Подскажите пожалуйста как это организовать? Спасибо.

megaloman 30-01-2017 13:00 2707477

Александр_Кот@vk,
Как вариант, совместить перемещение файлов с их архивированием
Используем архиватор RAR. Ключ -m1 позволит задать минимальный уровень сжатия, что для бэкапа базы даст существенную экономию места при сравнительно небольших затратах по времени. Ключ -df удалит исходные файлы после успешной архивации.
Код:

@Echo off

Set "From=\\SQL\BackUp\*.bak"
Set "To=f:\SQL"

Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" a -m1 -df"

FOR %%f IN ("%From%") DO %Arc% "%To%\%%~nxf.rar" "%%f"

Конечно, возможно использовать и другие архиваторы. Например, 7z
Код:

@Echo off

Set "From=\\SQL\BackUp\*.bak"
Set "To=f:\SQL"

Set "Arc="C:\Program Files\7-Zip\7zG.exe" a -mx=1 -sdel"

FOR %%f IN ("%From%") DO %Arc% "%To%\%%~nxf.7z" "%%f"

Можно копировать с последующим удалением исходного файла при успешном завершении процесса для каждого файла
Код:

@Echo off

Set "From=\\SQL\BackUp\*.bak"
Set "To=f:\SQL"
FOR %%f IN ("%From%") DO Copy "%%f" "%To%\" >nul &&Del "%%f"


Александр_Кот@vk 30-01-2017 13:35 2707487

Цитата:

Цитата megaloman
Используем архиватор RAR. Ключ -m1 позволит задать минимальный уровень сжатия, что для бэкапа базы даст существенную экономию места при сравнительно небольших затратах по времени. Ключ -df удалит исходные файлы после успешной архивации. Конечно, возможно использовать и другие архиваторы.
Код:
@Echo off
Set "From=\\SQL\BackUp\*.bak"
Set "To=f:\SQL"
Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" a -m1 -df"
FOR %%f IN ("%From%") DO %Arc% "%To%\%%~nxf.rar" "%%f" »

Файл архивируется и копируется, но при удалении с сервера выскакивает сообщение: "отказано в доступе" (при удалении файла)... Как приписать логин и пароль администратора, чтобы были права? Спасибо.

megaloman 30-01-2017 14:13 2707500

Александр_Кот@vk, Читайте хелп команды Net use /?
Мне не на чем отладить, попробуйте перед For вставить две строки
Код:

net use \\SQL\BackUp  /Delete   
net use \\SQL\BackUp  /User:Имя_домена\Имя_пользователя

Уже не упомню, но при этом система должна спросить пароль
ИМХО, раз Вы занимаетесь такой работой и знаете пароль администратора, я бы предложил повысить Ваши права доступа до возможности удаления на ресурсе \\SQL\BackUp чтобы не компрометировать лишний раз пароль администратора.


Дополнил первый пост работой с архиватором 7z

Александр_Кот@vk 30-01-2017 14:29 2707504

megaloman,
Пароль не спросило, так же добавил права к ресурсу, но результат такой же...

megaloman 30-01-2017 14:34 2707505

Александр_Кот@vk, Уберите Net Use, если он еще есть, перегрузите клиентский комп, попробуйте что-нибудь ручками записать с клиентского компа в папку \\SQL\BackUp и затем удалить это. Убедитесь, что Вам хватает прав.

Александр_Кот@vk 30-01-2017 16:59 2707554

megaloman, Действительно не хватало прав. Спасибо!

megaloman 30-01-2017 17:02 2707555

Александр_Кот@vk, Какой вариант решения Вы выбрали? Если с архиватором, какая экономия места и какие затраты по времени, приемлемые?

Александр_Кот@vk 31-01-2017 09:07 2707680

Цитата:

Цитата megaloman
Какой вариант решения Вы выбрали? Если с архиватором, какая экономия места и какие затраты по времени, приемлемые? »

Выбрал 1-й вариант с архивацией, т.к. экономия места очень значительная... Архивы с бэкапами занимают примерно в 10 раз меньше места, а затраты по времени фактически 1к1 с обычным копированием. Большое Вам спасибо!

Код:

@Echo off
Set "From=\\SQL\BackUp\*.bak"
Set "To=f:\SQL"
Set "Arc="C:\Program Files\WinRAR\WinRAR.exe" a -m1 -df"
FOR %%f IN ("%From%") DO %Arc% "%To%\%%~nxf.rar" "%%f"



Время: 05:24.

Время: 05:24.
© OSzone.net 2001-