2.12.9. Автоматическая очистка каталога

Важные моменты:

  • Внимание! Ни в коем случае не указывайте путь без ~/ в начале или в виде /*, так как это удалит абсолютно все файлы всех сайтов хостинг-аккаунта.
  • Для отключения рекурсивности в утилите rm не указывайте ключ -r, оставьте только -f.
  • Для отключения рекурсивности при использовании утилиты find сразу после указания пути укажите ключ -maxdepth 1.

Для автоматической очистки каталога можно создать задачу cron с командами для удаления файлов:

  • Удаление всех файлов и подкаталогов в определённом каталоге:
    /bin/rm -rf ~/example.com/www/tmp/*

    Вместо example.com/www/tmp/ укажите полный путь к каталогу, содержимое которого нужно удалить.

  • Удаление всех файлов с определённым расширением в каталоге и всех его подкаталогах:
    /bin/rm -rf ~/example.com/www/tmp/*.tmp

    Вместо .tmp укажите нужное расширение файлов, которые нужно удалить.

  • Удаление всех файлов старше определённого количества дней в определённом каталоге:
    /bin/find ~/example.com/www/tmp/ -type f -mtime +30 -exec rm -rf {} \;

    Вместо 30 укажите количество дней, которое должен храниться файл.

  • Удаление всех файлов, кроме одного:
    /bin/find ~/example.com/www/tmp/ -type f ! -name 'index.php' -delete

    Для удаления всех файлов, кроме файлов с определённым расширением, вместо index.php укажите *.php. В этом случае в каталоге будут удалены все файлы, кроме файлов с расширением .php.

Содержание