Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Cykliczne kasowanie plików
inomi13
post 14.10.2021, 14:45:24
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 0
Dołączył: 16.08.2017

Ostrzeżenie: (0%)
-----


Mam skrypt, który tworzy mi cyklinie co 7 dni backup strony www i zapisuje go w jednym spakowanym pliku w folderze "backupSites". Następnie mam poniższego crona, który się uruchamia i jego zadaniem jest kasowanie backupów starszych niż 14 dni i wszystko było by ok gdyby nie fakt że licznik się kasuje w momencie pojawienia się nowego backupu w folderze "backupSites". Proszę o sugestie jak mogę rozwiązać problem.


  1. $path = "backupSites/nazwadomeny.pl/";
  2.  
  3. if(file_exists($path))
  4. {
  5. if($handle = opendir($path))
  6. {
  7. $counter = 0;
  8. while (false !== ($file = readdir($handle)))
  9. {
  10. $counter++;
  11. if(($counter != 1) && ($counter != 2))
  12. {
  13. $filelastmodified = filemtime($path . $file);
  14.  
  15. $dni=14*24*3600;
  16. echo $domain_name.'<br/>Czas: '.(time() - $filelastmodified).' > '.$dni.'<br>';
  17.  
  18. if((time() - $filelastmodified) > 14*24*3600)
  19. {
  20. unlink($path . $file);
  21. }
  22. }
  23. }
  24. closedir($handle);
  25. }
  26. }
  27.  
  28.  





problem udało się rozwiązać, zamykam temat
Go to the top of the page
+Quote Post
Pyton_000
post 18.10.2021, 14:17:56
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A może po prostu:

  1. $fileSystemIterator = new FilesystemIterator('logs');
  2. $now = time();
  3. foreach ($fileSystemIterator as $file) {
  4. if ($now - $file->getCTime() >= 60 * 60 * 24 * 14) // 14 days
  5. unlink('logs/'.$file->getFilename());
  6. }
Go to the top of the page
+Quote Post
Robertus
post 23.02.2022, 13:44:44
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 1
Dołączył: 22.02.2022

Ostrzeżenie: (10%)
X----


Na większości hostingów jest dostępny cron i można ustawić w nim zadanie (np. codziennie w nocy), które będzie sprawdzać daną lokalizację i usuwać konkretne pliki, jeśli są starsze niż ileś tam dni.
Jest to raptem jedna linijka do wstawienia i wygląda następująco:

Kod
find /home/folder_z_backupami/ -mindepth 1 -mtime +14 -type f -name *.tar.gz -delete


/home/folder_z_backupami/ - to lokalizacja na serwerze, gdzie przechowywane są backupy
-mtime +14 - to ile dni temu plik był modyfikowany (w typ przypadku szuka tylko plików starszych niż (lub równych) 14 dni)
f -name *.tar.gz - tylko pliki, które w nazwie mają rozszerzenie .tar.gz (można podać domena.pl.tar.gz aby tylko taki określony plik był usuwany)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 10:36