Backup automată PostgreSQL în Linux
Despre cum se fac backup-uri automate în PostgreSQL este descris în articolul Automated Backup on Linux. Scripturile din acest articol sunt toate bune, cu excepția faptului că dacă le înregistrați în cron, atunci nimic nu va fi susținut. Și se întâmplă deoarece parola utilizatorului PostgreSQL nu este specificată nicăieri în numele căreia este făcută copia de rezervă.
Pentru ca aceste scripturi să funcționeze în modul automat, la sfârșitul paginii pg_backup.config, adăugați:
# Setați PGUSER și PGPASSWORD
PGUSER = "postgres"
PGPASSWORD = "parola"
export PGPASSWORD PGUSER
# Sfârșit
În mod normal, în loc de utilizatorul postgres, puteți utiliza orice utilizator pe care îl doriți și în loc de parolă trebuie să specificați parola pentru acest utilizator.
Și din motive de securitate, la sfârșitul paginii pg_backup.sh trebuie să introduceți:
# Dezactivați PGUSER și PGPASSWORD
PGUSER = ""
PGPASSWORD = ""
export PGPASSWORD PGUSER
# Sfârșit
Acum puteți face fișierele executabile:
chmod u + x pg_backup.sh pg_backup_rotated.sh
(pentru a testa performanța de care aveți nevoie pentru a executa bash pg_backup.sh)
Înregistrați-le în cron postgres (exemplu Ubuntu):
sudo crontab -u postgres -e
Următoarele linii trebuie adăugate la fișier:
SHELL = / bin / bash
15 3 * * * /path/to/script/pg_backup.sh> / dev / null 2> 1
Ar trebui să reamintim că / path / to / script / este calea spre directorul cu fișierul?
Acum așteptăm ora 03:15 dimineața și verificăm capacitatea de lucru.
Și de ce nu o faceți într-un mod elegant, fără a "mișca" parola, după cum urmează:
1. Definiți harta utilizatorului pentru root. Pentru a face acest lucru, adăugați $ PGDATA / pg_ident.conf la fișier:
root postgres rădăcină
2. Adăugați această hartă a utilizatorului la intrarea corespunzătoare din fișierul $ PGDATA / pg_hba.conf (atribuiți opțiunea map = root la șirul de identificare corespunzător), de exemplu:
local toate postgres peer hartă = rădăcină
3. Reporniți Postgres:
service postgresql-9.3 reporniți
Apoi, toți clienții (același psql) rulează sub rădăcină. se va conecta la PostgresQL ca postgres. Totul ar trebui să miroasă și nicăieri să indice parolele.
Nu vă place rădăcina - puteți face același lucru pentru orice cont de sistem în care doriți să începeți un script de rezervă.
Roman, mulțumesc pentru o soluție frumoasă! Voi încerca să-l testez și să vă dezabonez ce sa întâmplat.
Și nu am făcut-o așa, pentru că nu sunt administrator de sistem prin natura mea și nu prea știu încă - eu doar învăț (c) 🙂
Băieți, spuneți-mi, vă rog să configurați la fel, numai cu descărcarea copiei de rezervă pe un server FTP de la o terță parte, și nu local la mașină.
Sau este mai ușor să descărcați depozitul local și prin intermediul unui script separat să îl încărcați în FTP?
Rolex, văd câteva opțiuni:
- Ia script-urile din pachetul de backup-manager (apt-get install de backup-manager) și fie împrumute de acolo fișier trimiterea de cod la FTP, sau de a folosi un script din pachetul pentru acest scop, dar consideră că pachetul nu mai este menținută, cu toate acestea, de lucru în mod constant.
- Utilizați în loc de FTP SSH, care este mai simplu (trebuie să adăugați doar o singură linie de script pentru scriptul existent) și este mai fiabil.
Nu cred că am descoperit America pentru cineva, dar iată o altă opțiune pentru crearea de copii de rezervă. Folosind utilitatea barmanului
Mulțumesc. Totul funcționează. Class.