|
pg_dump + текущая дата на windows server 2012 | ☑ | ||
---|---|---|---|---|
0
newbling
30.09.16
✎
16:16
|
Доброго времени суток. Не подскажете как задать текущую дату при архивации через консольку?
|
|||
1
newbling
30.09.16
✎
16:21
|
На данный момент делаю так
cd "адрес постгре\bin" .\pg_dump.exe -Ft -h адрес сервера -U юзер -c база > адрес архива cd "адрес 7-зипа\7-Zip" .\7z.exe a -tzip адрес архива+[ТекущаяДата?].zip адрес архива del адрес архива |
|||
2
newbling
30.09.16
✎
16:23
|
всё отрабатывает, но вот текущую дату я никак не могу побороть
|
|||
3
eRik
30.09.16
✎
16:38
|
Есть несколько вариантов, у меня в батнике так:
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2% 7z.exe a e:\archive\base1c_%now%.7z e:\config\*.1CD |
|||
4
Fragster
гуру
30.09.16
✎
16:49
|
я себе из-за этого унылого cmd cygwin на сервер поставил
|
|||
5
Fragster
гуру
30.09.16
✎
16:51
|
и теперь нормально работает
#!/bin/bash backupname='(a)'`date +%Y.%m.%d%H.%M.%S` |
|||
6
newbling
30.09.16
✎
16:55
|
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%
а что за ~-4 |
|||
7
newbling
30.09.16
✎
17:10
|
О, отработало присвоение даты, только вот что-то с кодировокй, надо ещё попробовать chcp 1251 сделать
|
|||
8
eRik
30.09.16
✎
17:12
|
>а что за ~-4
отрезать последние 4 символа |
|||
9
eRik
30.09.16
✎
17:12
|
*в смысле, взять последние 4
|
|||
10
newbling
30.09.16
✎
17:14
|
(9) ясно, спасибо, сейчас как отработает - по результатам скину готовый код, мб ещё кому понадобится
|
|||
11
newbling
30.09.16
✎
17:22
|
:: меняем кодировку
CHCP 1251 :: задаём текущую дату set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2% :: делаем дамп средствами pg_dump.exe cd "АдресГдеЛежит_pg_dump.exe" .\pg_dump.exe -Ft -h АдресСервераБД -U ЮзерАдминПостгре -c НазваниеБазыВКластере > АдресКудаУпадётДамп :: архивируем дамп, добавляем дату в название и удаляем незаархивированную версию cd "Адрес7Зип" .\7z.exe a -tzip АдресКудаУпадётАрхив%now%.zip АдресГдеЛежитДамп del АдресГдеЛежитДамп |
|||
12
newbling
03.10.16
✎
16:49
|
Теперь вопрос как восстановить =D
Пробую cd "АдресГдеЛежит_pg_restore.exe" .\pg_restore.exe -h АдресСервераБД -U ЮзерАдминПостгре -c НазваниеБазыВКластере "АдресГдеЛежитДамп" ну и он ругается на то, что мног опараметров, начиная с "АдресГдеЛежитДамп". Хотя, во всех описаниях именно так. |
|||
13
newbling
03.10.16
✎
16:50
|
я сейчас пробую делать не -Ft, а Fc - так он сразу его сжимает и вроде ка кв описании позволяет поднимать в ресторе.
|
|||
14
newbling
03.10.16
✎
16:58
|
Хм, по ходу не надо ему -c НазваниеБазыВКластере указывать
|
|||
15
NorthWind
03.10.16
✎
17:01
|
(4) тоже вариант... хотя можно использовать штатный гораздо менее унылый PowerShell и штатный не менее веселый VBS.
|
|||
16
newbling
03.10.16
✎
17:02
|
.\pg_restore.exe -h АдресСервераБД -U ЮзерАдминПостгре "АдресГдеЛежитДамп"
Если так сделаем, то он куда восстановит базу? Там в дампе лежит изначальный адрес что ли? |
|||
17
newbling
03.10.16
✎
17:28
|
вот так вроде что-то получилось
cd "адрес pg_restore.exe" .\pg_restore.exe --host хост --port порт --username суперюзер --dbname имя базы --clean --verbose "адрес дампа" |
|||
18
Fragster
гуру
03.10.16
✎
17:48
|
(15) тогда еще повершелла не было. ну и под линупсом работает единообразно почти.
|
|||
19
newbling
04.10.16
✎
14:19
|
(17) пардон, не тот буфер - вот так отработало
.\pg_restore.exe -h хост -p порт -U суперюзер -d имя базы -c -v "адрес дампа" -с это дропать таблички в найденной базе, я так понимаю это не обязательно, а -v это сообщать подробно что происходит Дамп же я решил делать в формате -Fc, а ни -Ft. Ft грузит просто плейн текст, который потом архивировать, а -c в формате, подходящем для рестора, но уже ужатом. В сравнении с архивацией 7-зипом получается где-то на 10% толще - не критично. По времени быстрее значительно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |