Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cykliczne kasowanie plików
Forum PHP.pl > Forum > PHP
inomi13
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
Pyton_000
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. }
Robertus
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)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.