CRON Работа? Вау это у меня над головой

Я понятия не имею, как обрабатывать задания cron, однако я могу объяснить, что я хотел бы, чтобы это делали.... Любой, кто имеет опыт в том, как это сделать, будет очень признателен....

  1. Удалить старые файлы в каталоге
  2. Храните не менее 8 новых файлов в каталоге

Является ли это возможным? Я пытался разобраться с документацией по этому вопросу в течение нескольких часов, подумал, что попросил бы сэкономить время, изучая, как обрабатывать эти вещи... мой хост позволяет мне вводить задания cron в бэкэнд панели управления.

Я нашел эту команду

(ls -t|head -n 5;ls)|sort|uniq -u|xargs rm

Однако, похоже, он не знает, из какого каталога я хочу удалить... и я понятия не имею, что он делает...

1 ответ

Решение

Как я уже писал в своем комментарии, скрипт, который делает то, что вы хотите, не зависит от cron. Вот возможность сделать то, что вы хотите:

cd /path/to/dir; ls -t | tail -n +9 | xargs rm

объяснение

  • cd /path/to/dir: перейти в каталог
  • ls -t: получить список всех файлов в каталоге, отсортированный по дате последнего изменения, сначала самые новые
  • tail -n +9: выбрать все строки (в данном случае имена файлов), начиная с 9
  • xargs rm: удалить файлы, которые были "выбраны" предыдущими командами

При выборе всех строк, начиная с 9-го, 8 новейших файлов никогда не удаляются.

Я предполагаю, что в папке хранятся только файлы, так как rm команда только удалит тех. Чтобы также удалить папки и все их содержимое, вам придется использовать rm -r,

Читать подробное описание команды (например, cd, ls, tail, xargs, rm) использовать man <command>

Другие вопросы по тегам