Удаление определенных файлов старше x дней в Linux

★Сириус★

Участник
Сообщения
743
Реакции
197
Подскажите как правильно прописать команду.
Нужно в определенной папке удалять *log файлы старше 10 дней.
Пробовал такую команду:
C-подобный:
find /var/.../ -mtime +10 -iname "*.log" -exec rm {} \;
не работает,
а если убрать параметр -mtime +10, то есть оставить так
C-подобный:
find /var/.../ -iname "*.log" -exec rm {} \;
то прекрасно удаляет все *.log файлы.

Как правильно вставить срок в 10 дней
 

Tallanvor

НЕ ПИШУ я плагины!!! И не правлю! И ваще...
Сообщения
1,352
Реакции
554
Как бы, команду задаёшь правильно...
Должно работать. В искомой папке есть файлы, дата последнего изменения которых 10+ дней от текущей даты?

Добавлено через 8 минут
Как вариант, могу предложить пхп версию скрипта.
Выполняет то же самое, ток кода больше...)

PHP:
<?php
$dir = "/home/var/logs/";  //путь к папке с логами
$time = 10; //граничный срок хранения (в днях)

        /*Check file date*/
	$storage = glob($dir.'/*.log');
	if($storage != 0)
	{
		foreach($storage as $storage_file)
		{
			$file_date = date("m-d-Y", filectime($storage_file));
			$curr_date = date("m-d-Y");
			$res = floor((strtotime($curr_date)-strtotime($file_date))/(3600*24));
			if($res >= $time)
			{
				unlink($file);
			}
		}
	}
?>
 
Последнее редактирование:
Сверху Снизу