Мне нужно написать скрипт для веб-сервера, который очистит файлы/папки старше 14 дней, но сохранит последние 7 файлов/каталогов. До сих пор я проводил свои исследования, и вот что я придумал (я знаю, что синтаксис и команды неверны, но просто чтобы вы поняли):
ls -ldt /data/deployments/product/website.com/*/ | tail -n +8 | xargs find /data/deployments/product/website.com/ -type f -type d -mtime +14 -exec rm -R {} \;
Это мой мыслительный процесс о том, как должен вести себя скрипт (я больше работаю с пакетами Windows):
Список содержимого каталога
If contents is less than or equal to 7, goto END
If contents is > 7 goto CLEAN
:CLEAN
ls -ldt /data/deployments/product/website.com/*/
keep last 7 entries (tail -n +8)
output of that "tail" -> find -type f -type d (both files and directories) -mtime +14 (not older than 14 days) -exec rm -R (delete)
Я видел кучу примеров с использованием xargs и sed, но я просто не могу понять, как собрать все это вместе.
logrotate
. - person Lev Levitsky   schedule 22.08.2012