2.12.9. Автоматичне очищення каталогу

Для автоматичного очищення каталогу потрібно створити cron-завдання і вказати команду видалення файлів.

Важливі моменти:

  • Увага! Ні в якому разі не вказуйте шлях без ~/ на початку або ж у вигляді /*, так як видаленню підлягатимуть абсолютно всі файли всіх сайтів в одному хостинг-акаунті.
  • Для вимкнення рекурсивності в утиліті rm не вказуйте ключ -r, залиште тільки -f.
  • Для вимкнення рекурсивності при використанні утиліти find відразу після вказання шляху вкажіть ключ -maxdepth 1.
  • Для видалення всіх файлів і підкаталогів в певному каталозі використовуйте команду:
    /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.

Зміст