Čiščenje osirotelih shramb filestore
cleanup-orphaned-filestores.sh odstrani celotne mape filestore, katerih istoimenske baze PostgreSQL na lokalnem strežniku ne obstajajo več. Ohrani shrambe vseh obstoječih baz, tudi baz, ki niso Odoo. Ne odstranjuje neuporabljenih priponk iz shrambe obstoječe baze.
Uporaba
Iz korena repozitorija:
# Optional preview: list orphaned directories without deleting anything.
sudo bash scripts/clean/cleanup-orphaned-filestores.sh --dry-run
# Permanently delete orphaned directories without confirmation.
sudo bash scripts/clean/cleanup-orphaned-filestores.sh
Brisanje izpiše skupna števila namesto vrstice za vsako mapo. Oba načina vključita skrite mape in preskočita neposredne simbolne povezave ter vnose, ki niso mape. Referenco ukaza odprete z --help ali -h.
Privzeti koren filestore je /srv/pmiverse/_pmisuite18/data/filestore; drugega lokalnega izberete z --filestore /path/to/data/filestore. Koren mora obstajati, ne sme biti / in noben del poti ne sme biti simbolna povezava.
Povezava in dovoljenja
Potrebni so Bash, sudo, odjemalci PostgreSQL in GNU coreutils. Vsako ime mape se preveri v pg_database z varno narekovano vrednostjo SQL. Poizvedbe tečejo prek sudo -u postgres psql, izrecno prek lokalnih vtičnic /run/postgresql, vrat 5432 in vzdrževalne baze postgres. Skripta ne bere konfiguracije Odoo ali registra PMIVerse. Okoljske nastavitve gostitelja in vrat te povezave ne spremenijo.
Uporabite račun s pravico poizvedovanja kot sistemski uporabnik PostgreSQL in brisanja izbranih shramb; primeri za oboje uporabljajo sudo. Pred zagonom preverite, da je izbrani koren filestore v lasti tega lokalnega gruča PostgreSQL. Druga lokalna gruča ali oddaljeni strežnik baz ne smeta souporabljati tega cilja čiščenja.
Brisanje in napake
Pred brisanjem ohranite potrebne kopije. Ne izvajajte sočasnega ustvarjanja, podvajanja, obnove baz ali vzdrževanja filestore. Skripta ne ustavlja storitev in ne zaklepa drugih orodij. Preverjanje obstoja in brisanje datotek sta ločeni operaciji; preverjanje identitete mape zazna zamenjavo med poizvedbo, ne zagotavlja pa atomarnosti.
Neuspešna poizvedba, nepričakovan odgovor, spremenjen cilj ali napaka datotečnega sistema ustavi ukaz. Prejšnji izbrisi ostanejo trajni. Neuspešno brisanje lahko pusti delno izbrisano mapo. GNU rm --one-file-system prepreči sestop v vgnezdene datotečne sisteme na drugih napravah; priklopljene mape ne smejo biti cilji čiščenja. Simbolne povezave znotraj izbrisane mape se odstranijo brez sledenja ciljem.
Za še obstoječo bazo uporabite deletedb, ki odstrani bazo in njeno shrambo skupaj.