![]() |
Скрипт FOR и DIR
Уважаемые, не могу понять... почему не срабатывает....
Предистория: На локальном сервере есть папка с подкаталогами различных бэкапов. Необходимо на удаленном компе создавать папку с текущей датой и тупо туда скопировать ПОСЛЕДНИЕ СОЗДАННЫЕ бэкапы из подкаталогов. Когда делаю эту процедуру в контретном подкаталоге, т.е указываю *.bak - всё супер гут. Но как только поднимаюсь на уровень выше и начинаю делать перебор по подкаталогам %%B\*.bak ... всё, мандец, приехал... :( Код:
@echo off Код:
Подпапка или файл \\COMP1\d$\Backup_1c\2016-09.22 уже существует. такое ощущение что при использовании команды DIR сразу теряется смысл команды for in() Что не так? |
Код:
@Echo Off Что не так?
1. Например, exit вызывает не только выход из цикла, но и завершение батника. Из-за этого обрабатывается только первая выданная командой Dir папка. Читаем хелп по команде Exit /?
2. Не понимаю, зачем нужно "%sFolderName::=-%" |
iskurt,
Цитата:
|
Цитата:
|
с созданием папки по дате всё пучком, папка создается, и в нее все прекрасно копируется, если я батник кидаю в папку где лежат бэкапы от одной базы. А если в общий каталог, то пипец.... не видит он файлов в подкаталогах.
Опять так, может FOR в связки с DIR не хочет работать с подкаталогами? Или как правильно указать путь? Цитата:
|
iskurt,
в твоем логе я не увидел результатов отработки вот этого куска кода: Цитата:
Этот кусок важен для отладки |
сто пудофф ничего не переделывал.... ИДИОТ я..... имя то компа COMP1 - это же выдуманное ;-)
Спасибо, дружищщеее....y--, megaloman, !!! |
iskurt,
и все-таки с переделанной датой(для независимости от национальных настроек): Код:
@ECHO OFF Код:
ECHO COPY "%%~fb" "%BACKUP_DIR%" &GOTO :EOF Код:
COPY "%%~fb" "%BACKUP_DIR%" &GOTO :EOF |
Это уже классная модификация - унифицированная.... Респект!
|
iskurt,
Я правильно понимаю что у тебя речь идет об SQL-ных бэкапах? Если так то этот скрипт тебе не нужен ;) SQL бэкап можно делать на UNC-путь. При этом надо учесть только один нюанс: разрешение на запись должны быть для учетки от имени которой запущена служба "Агент SQL Server" (в случае когда делаешь через план обслуживания). Лучше всего создать специальную учетку для запуска SQL-ных служб, а если все-таки пускаешь от имени "Local System" то разрешение надо давать для учетной записи компьютера(в общей ситуации это возможно только в домене). При такой ситуации очень удобно строить структуру хранения резервных копий с автоматическим управлением количества хранимых копий в зависимости от типа копии(например: дневных - 6, недельных - 5, месячных - 13, годовых - 50). |
Цитата:
На сервере было настроено только архивирование. Но до меня этим серваком никто не занимался.... жопа вобщем. Взломали, заархивировали и запаролили все базы RARом.... Вымогатели получили 17000р. Дали задание придумать что-нить. Перенастроил полностью с нуля сервак, поставил домен, настроил скульагента, всё пучком, но к сожалению храним их только на этом же серваке. Провайдер за облачное хранение просит денег - директор хоть и понимает, что случилось, что вообще могли потерять всю инфу, все же я получил распоряжение придумать подешевле. Ну вот и придумал: Ночью включаю удаленный комп, запускаю скрипт копирования *.bak, и комп автоматом выключается. Думаю так надежней, чем просто на серваке. |
iskurt,
то же самое ты получишь выполнив бэкап по UNC-пути - во-первых шифровальщики даже сетевые диски(а у тебя не сетевой диск, а несмонтированный UNC) не шифруют, а во-вторых - время от времени надо не на сеть - на оптический накопитель скидывать ;), в третьих жать скульные бэкапы внешним средством - моветон, так как встроенный алгоритм(на базе ZIP) дает вполне приемлемую компрессию, но в разы быстрее(и восстанавливать удобнее). PS - Вобщем если есть желание могу расписать подробно алгоритм - но тока в ПМ - тут это оффтоп. |
Цитата:
|
Время: 20:26. |
Время: 20:26.
© OSzone.net 2001-