Jak vymazat obrovské množství logovaných souborů?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Milan Obrtlík
Člen | 50
+
0
-

Zapomněl jsem v configu nastavit ukládání sessions do temp/sessions. Díky tomu se sessions ukládaly někam mimo. To se nelíbilo mému hostingu, tak mi zakázali ukládat do stávající cesty.

To mi začalo generovat obrovské množství vyjímek, které zachycoval log. Až mi po několika dnech řekli, co provedli, tak mi to vygenerovalo 13GB logů (asi 122 000 vyjímek). Jak to smazat?

llook
Člen | 407
+
+3
-

Jestli nemáš SSH přístup, tak napiš na hosting, ať ti ty soubory smažou. Jinak rm -rf ./log/*.

Mysteria
Člen | 797
+
0
-

Použij nějaký FTP klient co zvládá práci ve více vláknech. Za sebe doporučuju Altap Salamander, který používám na upload velkého množství malých souborů. To co mi jedním vláknem zabere pár desítek minut mám v 50 vláknech za pár minutek. :)

besir
Člen | 170
+
0
-

Pak take zalezi na tom zda to vubec dovoli ten hosting pripojit se ve vicero vlaknech. Natoz v 50ti.

srigi
Nette Blogger | 558
+
0
-

Napis si PHP aplikaciu, co to vymaze „programovo“.

Milan Obrtlík
Člen | 50
+
0
-

Můžeš uvést jak na to?

h4kuna
Backer | 740
+
0
-

zkus jestli ten bash co je zde uvedený můžeš pustit přes php pokud nemáš ssh

<?php
$path = __DIR__ . '/log/*';
system('rm -rf ' . $path);
?>

Editoval h4kuna (6. 8. 2015 10:06)

Milan Obrtlík
Člen | 50
+
0
-

F.Vesely: Hodně zajímavé! Když chci vymazat jenom .html soubory, tak $files = glob(‚path/to/temp/.html‘); ? A pak ještě otázka – proměnná files obsahuje jenom názvy souborů nebo i jejich obsah? Nevím, jestli mi na toto bude stačit RAM.

Milan Obrtlík
Člen | 50
+
0
-

To mám vytvořit *.php soubor ve složce www a pak ho „spustit“ přes prohlížeč?

Martk
Člen | 661
+
+3
-

Nebo použitím Finderu:

<?php

require __DIR__ . '/autoload.php';

foreach (Nette\Utils\Finder::findFiles('*.html, *.log')->in(__DIR__ . '/logs') as $file) {
	@unlink((string)  $file);
}
h4kuna
Backer | 740
+
0
-

Jop. Jen si musíš být opravdu jist tím co děláš. :)

Editoval h4kuna (6. 8. 2015 12:27)

Milan Obrtlík
Člen | 50
+
0
-

No to nejsu :-(

Milan Obrtlík
Člen | 50
+
0
-

Nakonec jsem použil toto řešení. Super ;) Díky za pomoc. Zabralo to asi 120 vteřin. Párkrát to spadlo, že byl překročen časový limit pro vykonávání operace, ale stačilo profouknout dráty (spustit znovu), a všech 120k souborů to smazalo.

Milo
Nette Core | 1283
+
0
-

@llook Takhle se velké množství souborů nemaže. Shell totiž nejprve expanduje * na jména všech souborů.

find log/ -type f -delete