Strona 1 z 1

[+] pg_dumpall i wymagane hasło z linii poleceń w skrypcie

: 20 stycznia 2011, 11:24
autor: sethiel
Chciałbym napisać skrypt do kopii zapasowej bazy postgresa uruchamiany z crona.
Niestety pg_dumpall pyta o hasło i nijak nie udaje mi się go podać z linii poleceń.
Tylko ręcznie wpisuję. Ktoś wie jaką opcją to zrobić?

Utworzyłem wykonywalny plik /root/skrypt, a w nim:

Kod: Zaznacz cały

pg_dumpall -U postgres > /home/backupy/postgres.dump
Dodatkowy plik, który mam to /root/.pgpass (uprawnienia 0600), a w nim hasło - próbowałem też:

Kod: Zaznacz cały

 ::::hasło
Niestety też nie działa
Przełączniki --password do pg_dumpall też nie bardzo pomagają.

A może jest jakiś sposób aby do następnej linii przenieść zmienną (magiczne polecenie, którego nie znam)?

Kod: Zaznacz cały

zmienna=haslo
pg_dumpall -U postgres > /home/backupy/postgres.dump
magiczne_komenda $zmienna

: 20 stycznia 2011, 11:49
autor: Bastian
Jeśli chcesz zautomatyzować to załóż role w postgresie, która bedzie miala tylko uprawnienia potrzebne do zdumpowania bazy, a następnie w pg_hba.conf ustaw jej autoryzację trust i możliwość odpalania tylko i wyłącznie z localhosta. Wtedy będziesz mógł logować sie do bazy bez hasła, a więc twoj skrypt również.

: 20 stycznia 2011, 12:18
autor: czarownik
Pokaż plik /root/.pgpass.

M
ój wygląda tak:

Kod: Zaznacz cały

*:*:*:*:PGPASS
A kopię zapasową bazy wykonuję za pomocą:

Kod: Zaznacz cały

pg_dump -c -O -U $USERNAME $baza  -h $HOSTNAME -p $PORT -i 

: 20 stycznia 2011, 15:43
autor: Unit
Najprościej użyć autopostgresqlbackup - kopie zapasowe dzienne, tygodniowe, miesięczne, powiadomienia mailowe.
Wpis z crona:

Kod: Zaznacz cały

0 5	* * * 	postgres /root/SCRIPTS/autopostgresqlbackup.sh

: 20 stycznia 2011, 15:49
autor: sethiel
Dzięki wielkie.