Показать полную графическую версию : [решено] Перемещение файлов по сети
Александр_Кот@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.