Народ!
Нужен скриптик, который бы удалял файлы старше N дней в определённой папке. Раз в сутки или может быть в реальном времени.
Нужен скрипт, удаляющий файлы старше N дней
parovoZZ, навряд ли кто откликнется, придется или платить, или делать самостоятельно.
Разделяй и властвуй!
Найти файлы старше N дней в каталоге поможет find (равно как и удалить найденное).
Передать найденное команде удаления поможет xargs.
Удалить файлы по списку поможет rm.
Запускать всё это раз в сутки поможет crond, редактирование расписаний пользователя -- crontab -e.
соединив всё вместе, получите желаемое.
По каждой команде есть соответствующие руководства, man в помощь.
Как вариант добавить задание в cron
find /path/to/dir -ctime +10 -deleteгде /path/to/dir — каталог, который будет проверяться,
+10 — старше 10 дней.
удаляем файлы старше 30 дней
...
#remove old archives
FIND="/usr/bin/find"
DIR_FILES="/home/ivan/backup/*"
PARAM="-type f -ctime +30"
DEL="| xargs rm -rfv {} \;"
...
eval $FIND $DIR_FILES $PARAM $DEL
Лучше:
DIR_FILES="/home/ivan/backup/"
без звёздочки, ни к чему там лишний глоббинг (если только не стоит задача пропускать скрытые (.*) файлы и каталоги на первом уровне), по каталогам find сам ходить умеет...
Смотрите ка, сколько народу откликнулось! :) Прям не ожидал!..
Спасибо! А как бы залогировать в файл?
А как бы залогировать в файл?
Как-нибудь так:
find /path/to/dir -ctime +10 -delete > log.txt...или так:
find /path/to/dir -ctime +10 -delete | tee log.txtА лежать он будет в /path/to/dir ?
А лежать он будет в /path/to/dir ?
В данном случае лежать будет в каталоге, из которого запущен скрипт. Это был только пример. Можно указать «правильный» полный путь к каталогу с логами. Главное — чтобы у пользователя, от имени которого запускается скрипт, были соответствующие права доступа.
спс