Войти

Показать полную графическую версию : [решено] Перемещение файлов по сети


Александр_Кот@vk
30-01-2017, 12:15
Добрый день! Нужно переместиь бэкапы с сервера на другую машину.

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

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

megaloman
30-01-2017, 13:00
Александр_Кот@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
Используем архиватор 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
Александр_Кот@vk, Читайте хелп команды Net use /?
Мне не на чем отладить, попробуйте перед For вставить две строки
net use \\SQL\BackUp /Delete
net use \\SQL\BackUp /User:Имя_домена\Имя_пользователя
Уже не упомню, но при этом система должна спросить пароль
ИМХО, раз Вы занимаетесь такой работой и знаете пароль администратора, я бы предложил повысить Ваши права доступа до возможности удаления на ресурсе \\SQL\BackUp чтобы не компрометировать лишний раз пароль администратора.


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

Александр_Кот@vk
30-01-2017, 14:29
megaloman,
Пароль не спросило, так же добавил права к ресурсу, но результат такой же...

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

Александр_Кот@vk
30-01-2017, 16:59
megaloman, Действительно не хватало прав. Спасибо!

megaloman
30-01-2017, 17:02
Александр_Кот@vk, Какой вариант решения Вы выбрали? Если с архиватором, какая экономия места и какие затраты по времени, приемлемые?

Александр_Кот@vk
31-01-2017, 09:07
Какой вариант решения Вы выбрали? Если с архиватором, какая экономия места и какие затраты по времени, приемлемые? »

Выбрал 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"




© OSzone.net 2001-2012