Nextcloud include deja elementele necesare pentru curățarea automată a fișierelor șterse, așa că majoritatea administratorilor nu au nevoie de un script shell personalizat. Începând cu documentația actuală de administrare Nextcloud 35, abordarea recomandată este în continuare combinarea unei politici definite de retenție a fișierelor de tip „trash bin” cu executarea fiabilă a sarcinilor în fundal. Detaliul important este că autopolitica implicită nu este aceeași cu „șterge totul după exact 30 de zile”. Aceasta păstrează elementele șterse timp de cel puțin 30 de zile, apoi le face eligibile pentru curățare atunci când este nevoie de spațiu.
Dacă obiectivul dvs. este curățarea previzibilă, setați o vârstă maximă de retenție explicită și asigurați-vă că joburile de fundal Nextcloud rulează prin cron-ul sistemului. Pașii de mai jos utilizează doar comportamentul documentat de Nextcloud și explică, de asemenea, când comenzile occ trashbin:expireși trashbin:cleanupsunt adecvate.
Ce face de fapt curățarea automată a coșului de gunoi
Când aplicația Fișiere șterse ( files_trashbin) este activată, fișierele eliminate de utilizatori sunt mutate în coșurile de gunoi în loc să fie șterse imediat. Aceasta oferă utilizatorilor o fereastră de recuperare, dar elementele șterse ocupă în continuare spațiu de stocare. Nextcloud controlează durata lor de viață cu ajutorul trashbin_retention_obligationsetării din config/config.php.
Documentația actuală de configurare a coșului de gunoi Nextcloud definește aceste formulare de politici:
| Setare | Sens | Potrivire bună |
auto | Păstrați articolele timp de cel puțin 30 de zile; după aceea, eliminați articolele eligibile atunci când este nevoie de spațiu. | Instalații mici care se simt confortabil cu comportamentul implicit. |
D, auto | Păstrați obiectele cel puțin zile Z, apoi permiteți curățenia în funcție de spațiu. | Ai nevoie de o fereastră minimă de recuperare, dar de un termen limită ferm pentru ștergere. |
auto, D | Garantează ștergerea după zilele D, permițând în același timp curățarea mai devreme, bazată pe spațiu. | Doriți o vârstă maximă de păstrare, dar puteți tolera ștergerea mai devreme atunci când apare presiunea stocării. |
D1, D2 | Păstrați articolele timp de cel puțin D1 zile și ștergeți-le când depășesc D2 zile. | Aveți nevoie atât de o perioadă minimă de recuperare, cât și de o vârstă maximă de retenție fermă. |
disabled | Dezactivați expirarea automată a coșului de gunoi. | Numai atunci când retenția nelimitată este intenționată și creșterea spațiului de stocare este gestionată în alt mod. |
Mai există o regulă de stocare de care trebuie să țineți cont: dacă cota unui utilizator este depășită din cauza fișierelor șterse, Nextcloud poate ignora setările de păstrare și poate curăța coșul de gunoi până când cerințele de cotă sunt îndeplinite. De aceea, păstrarea nu ar trebui tratată ca o garanție imuabilă de backup.
Pasul 1: Alegeți o politică de retenție înainte de a modifica orice
Decideți la ce folosește coșul de gunoi în mediul dvs. Dacă utilizatorii restaurează în mod obișnuit fișiere șterse accidental, acordați-le o fereastră minimă semnificativă. Dacă prioritatea dvs. este spațiul de stocare limitat sau o politică documentată de păstrare a datelor, definiți și un maxim.
De exemplu, această setare permite curățarea bazată pe spațiu în orice moment, dar garantează că fișierele mai vechi de 30 de zile sunt eliminate:
'trashbin_retention_obligation' => 'auto, 30',
Dacă doriți ca fișierele șterse să fie păstrate timp de cel puțin 30 de zile și eliminate după 30 de zile, utilizați în schimb o politică limitată:
'trashbin_retention_obligation' => '30, 30',
Alegeți valori care corespund cerințelor dvs. de recuperare. O perioadă mai scurtă economisește spațiu de stocare mai rapid, dar reduce timpul necesar utilizatorilor pentru a restaura fișierele. O perioadă mai lungă oferă un timp de recuperare mai lung, dar poate crește utilizarea discului.
Pasul 2: Setați trashbin_retention_obligation în config.php
Deschideți fișierul de configurare Nextcloud, care se află în mod normal config/config.phpsub directorul de instalare. Adăugați sau modificați setările din $CONFIGmatrice. Un exemplu tipic este:
<?php
$CONFIG = array (
// Other Nextcloud settings...
'trashbin_retention_obligation' => 'auto, 30',
);
Nu editați valori fără legătură și aveți grijă să nu expuneți conținutul config.phptichetelor sau capturilor de ecran, deoarece acestea pot conține configurații sensibile ale serverului.
De asemenea, puteți inspecta configurația efectivă prin intermediul instrumentelor din linia de comandă ale Nextcloud, în loc să copiați conținutul fișierului într-un mesaj de depanare.
Pasul 3: Folosește cronul sistemului pentru joburi de fundal fiabile
Politica de retenție este utilă doar dacă joburile de fundal Nextcloud rulează efectiv. Documentația Nextcloud pentru joburile de fundal recomandă cron-ul sistemului de operare pentru instanțele de producție. AJAX este modul implicit, dar depinde de vizitele de pagină și este opțiunea cea mai puțin fiabilă.
Într-o instalare Linux tipică care utilizează www-datacontul de server web, editați crontab-ul acelui cont:
crontab -u www-data -e
Apoi rulează Nextcloud cron.phpla fiecare cinci minute:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Înlocuiți /var/www/nextcloudcu calea reală către instalarea dvs. Unele sisteme necesită calea completă CLI PHP, cum ar fi /usr/bin/php.
De asemenea, puteți selecta explicit modul cron cu:
sudo -E -u www-data php /var/www/nextcloud/occ background:cron
Nextcloud documentează jobul în fundal cu expirarea coșului de gunoi ca rulând la fiecare 30 de minute. Apelarea cron.phpla fiecare cinci minute nu înseamnă că coșul de gunoi este golit la fiecare cinci minute; înseamnă că planificatorul are oportunități frecvente de a rula joburi scadente.
Pasul 4: Verificați dacă planificatorul funcționează
După configurarea cron-ului, verificați mai întâi intrarea sistemului de operare:
crontab -u www-data -l
Apoi verificați setările de administrare ale Nextcloud pentru starea joburilor în fundal. Pagina ar trebui să raporteze că joburile au fost executate recent. Dacă ora ultimei execuții raportată continuă să îmbătrânească, remediați cron-ul înainte de a diagnostica politica de retenție.
Pe Nextcloud 35, occcomenzile documentate includ și comenzi de inspecție a joburilor în fundal, cum ar fi background-job:list, background-job:runningși background-job:history. Acestea pot fi utile atunci când trebuie să verificați dacă joburile sunt procesate, în loc să presupuneți pur și simplu că cron este activ.
Pasul 5: Folosește trashbin:expire pentru rulări manuale bazate pe politici
Dacă ați configurat o perioadă de retenție personalizată, puteți aplica manual politica respectivă cu:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:expire
Referința curentă pentru fișierele Nextcloud și comenzile trashbin menționează o limitare importantă: trashbin:expireefectuează o expirare manuală doar atunci când este configurată o perioadă de retenție personalizată. Cu autopolitica implicită, comanda se încheie cu un mesaj informativ și nu face nimic, deoarece expirarea automată este gestionată de jobul în fundal.
Dacă doriți în mod deliberat o intrare cron separată pentru sistem trashbin:expire, Nextcloud documentează o modalitate de a dezactiva mai întâi jobul în fundal de expirare a gunoiului încorporat în aplicație:
sudo -E -u www-data php /var/www/nextcloud/occ config:app:set --value=no files_trashbin background_job_expire_trash
Apoi vă puteți programa occ trashbin:expire --quietsinguri. Aceasta este o opțiune avansată. Pentru majoritatea instalărilor, lăsarea activă a jobului de expirare încorporat și rularea cron.phpplanificatorului normal Nextcloud este mai simplă și mai ușor de întreținut.
Nu confundați trashbin:expire cu trashbin:cleanup
Numele sunt similare, dar comenzile au efecte foarte diferite. trashbin:expireelimină elementele care se califică conform politicii de retenție configurate. trashbin:cleanupelimină definitiv conținutul coșului de gunoi pentru utilizatorii specificați.
De exemplu:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:cleanup --all-users
este o curățare distructivă, pentru toți utilizatorii. Este utilă atunci când trebuie intenționat să goliți coșul de gunoi al fiecărui utilizator, dar de obicei este comanda greșită pentru automatizarea de rutină bazată pe retenție, deoarece ignoră fereastra de recuperare pe care ați proiectat-o. Nu plasați o comandă de curățare pentru toți utilizatorii în cron decât dacă politica dvs. este cu adevărat o curățare permanentă și necondiționată.
Pasul 6: Verificați și controlați dimensiunea coșului de gunoi pe Nextcloud 35
Documentația curentă a comenzilor Nextcloud 35 include trashbin:size, care permite administratorilor să inspecteze sau să seteze dimensiunea țintă a coșului de gunoi la nivel global sau per utilizator. Pentru a vizualiza valoarea globală curentă:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size
Pentru a vizualiza ținta efectivă a unui anumit utilizator:
sudo -E -u www-data php /var/www/nextcloud/occ trashbin:size --user USER_ID
O dimensiune țintă configurată poate completa retenția bazată pe vârstă atunci când capacitatea de stocare este principala preocupare. Nextcloud notează că modificarea dimensiunii implicite globale declanșează imediat curățarea coșurilor de gunoi existente, așadar modificările de dimensiune sunt tratate ca o acțiune operațională, nu doar ca o setare de afișare inofensivă.
Cum să afli dacă curățarea automată funcționează
- Starea jobului în fundal arată rulările recente.
- Crontab-ul sistemului de operare conține intrarea așteptată
cron.php.
- Configurația ta
trashbin_retention_obligationcorespunde politicii pe care ai intenționat-o.
- Elementele vechi de gunoi dispar în cele din urmă în funcție de vârsta maximă configurată, dacă există una.
trashbin:expirese comportă așa cum este documentat atunci când este configurată o politică personalizată.
- Utilizarea discului sau a cotei nu mai crește în mod neașteptat, deoarece fișierele șterse și învechite nu mai sunt păstrate pe termen nelimitat.
Dacă fișierele vechi rămân în stoc mai mult decât era de așteptat, confirmați mai întâi că politica dvs. conține de fapt o valoare maximă. autoSetarea implicită nu promite ștergerea exact în ziua 30. Apoi, verificați sarcinile de fundal. Numai după aceste verificări ar trebui să investigați permisiunile, backend-urile de stocare sau jurnalele aplicațiilor.
O configurație practică pentru majoritatea serverelor auto-găzduite
Pentru o instanță tipică auto-găzduită, un punct de plecare rezonabil este utilizarea comenzii cron a sistemului la fiecare cinci minute și definirea unei vârste maxime explicite pentru eliminarea din coșul de gunoi. De exemplu, 'auto, 30'oferă utilizatorilor până la aproximativ o lună în condiții obișnuite, asigurându-se în același timp că elementele nu rămân în coșul de gunoi pe termen nelimitat. Dacă utilizatorii trebuie să aibă întotdeauna fereastra completă de recuperare, indiferent de presiunea de stocare, utilizați în schimb o politică de minim și maxim limitată, cum ar fi '30, 30'.
Păstrați copiile de rezervă separat de coșul de gunoi. Coșul de gunoi este o funcție de recuperare pentru utilizatori, cu cotă și comportament de retenție; nu înlocuiește o strategie de backup independentă.
Referințe oficiale Nextcloud