Tamkovich.com: Телеком/VoIP блог
Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys
Регулярное удаление старых файлов с помощью cron и find
24 мая, 2010 by Сергей Тамкович
LinuxЕсли вы записываете разговоры проходящие через ваш Asterisk, вы можете столкнуться с переполнением диска. Что бы избежать этой проблемы, надо регулярно удалять старые записи с сервера. Операции над файлами старше определённого возраста — стандартная возможность команды find. Делается это следующим образом:
find /var/spool/asterisk/monitor -mtime +90 -exec rm {} \; |
find выполнит команду указанную в параметре exec, для каждого файла чье содержимое не менялось последние mtime суток. Т.е. в данном примере файлы записанные более 90 суток назад — будут удалены. Добавляем эту строку в crontab:
12 2 * * * root find /var/spool/asterisk/monitor -mtime +90 -exec rm {} \; |
И теперь старые файлы будут удаляться каждую ночь автоматически — cron-ом.
Linux
а как можно не удалять файлы а перемещать к примеру в папку архив с названием дата и время? чтобы позже можно было их прослушать.
перемещать файлы можно командой mv, вычислять дату/время — командой date.
Спасибо, интересно
Я извиняюсь. пытаюсь разобраться в этом corn сам совсем не программист.
Но не как не могу понять куда вводить эту строчку. На хостинге табличка со временем сдвига и нечего больше нету куда вводить этот скрипт???? У меня нужно чистить папку /http/image/cache и удалять файлы старше 2х дней.
я так понимаю что скрипт должен быть таким:
12 2 * * * root find /http/image/cache -mtime +2 -exec rm {} \;
Но куда его ввести я не знаю. Подскажите пожалуйста!!
как вариант,залогиниться(root) по ssh к своему серверу набрать
echo ’12 2 * * * root find /http/image/cache -mtime +2 -exec rm {} \;’>>/etc/crontab