Назад | Перейти на главную страницу

Настройка нового задания с помощью crontab Ubuntu

У меня мало опыта настройки заданий cron.

Мне нужно настроить задание cron для удаления всех файлов, начинающихся с имени файла 'sess_' из '/tmp' папку каждый час.

Если я запустил crontab, используя crontab -e и напишите следующий код:

0 */1 * * * find /tmp/ -name "sess_*" -delete

это сработает?

Синтаксис выглядит правильно? Мне нужно что-нибудь перезапускать? (т.е. Apache)

Заранее спасибо!

В */1 такой же как * в определении cron так

0 * * * *  ...

будет работать так же.


В найти -delete удалит файлы по вашему запросу, но это может быть не то, что вам нужно. Вы можете проверить свою команду find, запустив ее из командной строки без -delete вариант

find /tmp/ -name "Sess_*"   

который предоставит вам список файлов, с которыми будут выполняться действия.


Еще лучше было бы посмотреть файл /etc/cron.d/php5, который делает то же самое для файлов сеанса, расположенных в / var / lib / php5. Обратите внимание, что он удаляет только те файлы, которые старше, чем максимальное время жизни системы, с помощью параметра -cmin ...

# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete

Поступая таким образом, вы не будете слепо удалять файлы сеанса, которые используются.