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

Тема в разделе "Linux", создана пользователем ★Сириус★, 27 апр 2014.

  1. ★Сириус★

    ★Сириус★

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

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

    Tallanvor Красноглазый

    Сообщения:
    1.107
    Симпатии:
    317
    Как бы, команду задаёшь правильно...
    Должно работать. В искомой папке есть файлы, дата последнего изменения которых 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);
                }
            }
        }
    ?>
     
    Последнее редактирование: 27 апр 2014
  3. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271