Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / RESTORE баз в одноименные подпапки с помощью скрипта bash / 12 сообщений из 12, страница 1 из 1
21.05.2015, 17:22
    #38965601
supernaut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Добрый день!

Что добавить к скрипту для того чтобы базы восстанавливались из bak в одноименные папки по пути E:\SQL_DATA\имя базы\ ?
Сейчас скрипт кладет все базы и логи в одну папку E:\SQL_DATA\.

Сам скрипт:

#!/bin/bash
for f in $(cat list_databases.txt);
do
echo "RESTORE DATABASE [$f] FROM DISK = N'D:\databases_backup\\"$f".bak'
WITH FILE=1, MOVE N'"$f"' TO N'E:\SQL_DATA\\"$f".mdf', MOVE N'"$f"_log' TO N'E:\SQL_DATA\\"$f"_log.ldf'"; done >> tsql_data_restore.txt

запуск скрипта: sqlcmd -S localhost -i d:\tsql_data_backup.txt

Спасибо!
...
Рейтинг: 0 / 0
21.05.2015, 17:59
    #38965660
binbasher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
supernaut
Код: powershell
1.
2.
3.
#!/bin/bash
...
E:\SQL_DATA\



шта?
...
Рейтинг: 0 / 0
21.05.2015, 21:07
    #38965765
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
supernaut,

кстати да, вам намекают откуда в unix-подобной системе взялся путь к каталогу предполагающий начилие операционной системы windows?

уточните целевую операционку где пытаетесь запустить скрипт.

а так по идее вам надо проверять наличие каталога и при его отсутствии создавать
Код: sql
1.
2.
3.
if [-d $cpath]; then
  mkdir $cpath
fi



где $cpath переменная вида /something_path/SQL_DATA/f$
...
Рейтинг: 0 / 0
21.05.2015, 22:42
    #38965795
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
felix_ffоткуда в unix-подобной системе взялся путь к каталогу предполагающий начилие операционной системы windows?Предположу, что имеется какое-то отношение к wine.
...
Рейтинг: 0 / 0
22.05.2015, 04:18
    #38965856
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Скорее SYGWIN какой-нибудь

supernautecho "RESTORE DATABASE [$f] FROM DISK = N'D:\databases_backup\\"$f".bak'
WITH FILE=1, MOVE N'"$f"' TO N'E:\SQL_DATA\\"$f".mdf', MOVE N'"$f"_log' TO N'E:\SQL_DATA\\"$f"_log.ldf'"; done >> tsql_data_restore.txt
я не знаток MSSQL, но, возможно, надо просто добавить в путь соответствующий каталог
Код: plaintext
1.
2.
3.
C:\cygwin\bin>bash
bash-2.05b$ for f in 'test'; do echo "restore database [$f] ... move to N'e:\sql_data\\$f\\$f.mdf', ..."; done
restore database [test] ... move to N'e:\sql_data\test\test.mdf', ...
bash-2.05b$
...
Рейтинг: 0 / 0
22.05.2015, 08:58
    #38965920
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
MOVE N'"$f"' TO N' E:\SQL_DATA\\ "$f".mdf', MOVE N'"$f"_log' TO N' E:\SQL_DATA\ \"$f


Куда указываете восстанавливать - туда и кладет
...
Рейтинг: 0 / 0
22.05.2015, 09:00
    #38965926
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Т е
1.распарсить имя БД
2. создать подкаталог, если не существует
3. сформировать команду для выполнения с именем подкаталога
4. восстановить БД в указанный подкаталог
...
Рейтинг: 0 / 0
22.05.2015, 09:11
    #38965944
supernaut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
landyТ е
1.распарсить имя БД
2. создать подкаталог, если не существует
3. сформировать команду для выполнения с именем подкаталога
4. восстановить БД в указанный подкаталог

Скрипт нашел в инете, он работает поэтому его и хочу довести до нужного мне результата.
Выполняю в СYGWIN.
Синтаксис баш, поэтому не вкуриваю как это организовать создание этой папки.
...
Рейтинг: 0 / 0
22.05.2015, 09:21
    #38965954
supernaut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Вячеслав ЛюбомудровСкорее SYGWIN какой-нибудь

supernautecho "RESTORE DATABASE [$f] FROM DISK = N'D:\databases_backup\\"$f".bak'
WITH FILE=1, MOVE N'"$f"' TO N'E:\SQL_DATA\\"$f".mdf', MOVE N'"$f"_log' TO N'E:\SQL_DATA\\"$f"_log.ldf'"; done >> tsql_data_restore.txt
я не знаток MSSQL, но, возможно, надо просто добавить в путь соответствующий каталог
Код: plaintext
1.
2.
3.
C:\cygwin\bin>bash
bash-2.05b$ for f in 'test'; do echo "restore database [$f] ... move to N'e:\sql_data\\$f\\$f.mdf', ..."; done
restore database [test] ... move to N'e:\sql_data\test\test.mdf', ...
bash-2.05b$

Не пойму куда в мой скрипт впиливать этот кусок. Можно указать полный скрипт для моего случая?
...
Рейтинг: 0 / 0
22.05.2015, 09:24
    #38965956
supernaut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
felix_ffsupernaut,

кстати да, вам намекают откуда в unix-подобной системе взялся путь к каталогу предполагающий начилие операционной системы windows?

уточните целевую операционку где пытаетесь запустить скрипт.

а так по идее вам надо проверять наличие каталога и при его отсутствии создавать
Код: sql
1.
2.
3.
if [-d $cpath]; then
  mkdir $cpath
fi



где $cpath переменная вида /something_path/SQL_DATA/f$
Целевая операционка Windows.
...
Рейтинг: 0 / 0
22.05.2015, 10:00
    #38966002
supernaut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Ответ на задачу был прост:


#!/bin/bash
for f in $(cat list_databases.txt);
do
mkdir -p "E:\\SQL_DATA\\$f"
echo "RESTORE DATABASE [$f] FROM DISK = N'D:\\databases_backup\\"$f".bak'
WITH FILE=1, MOVE N'"$f"' TO N'E:\\SQL_DATA\\"$f"\\"$f".mdf', MOVE N'"$f"_log' TO N'E:\\SQL_DATA\\"$f"\\"$f"_log.ldf'"; done >> tsql_data_restore.txt
...
Рейтинг: 0 / 0
22.05.2015, 10:45
    #38966046
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RESTORE баз в одноименные подпапки с помощью скрипта bash
Идиоты....
Их много...
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / RESTORE баз в одноименные подпапки с помощью скрипта bash / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]