У меня есть 3 пользователя на моем сервере, 2 из них для загрузок FTP.
Я хочу, чтобы КРОН запустил задание время от времени, которое удаляет файлы в папке, названной 'субдоменом' в их соответствующем домашнем dir, если им X дни или более старый.
Эта команда, когда выполнено в терминале как пользователь, который владеет dir, работами;
find /home/derakupload/subdomain -mindepth 1 -mmin +1 -delete
Проблемы возникают с КРОНОМ, которые отказываются выполнять эту команду.
Я ввожу использование КРОНА sudo crontab -e
и имейте 2 записи прямо сейчас;
* * * * * derakupload find '/home/derakupload/subdomain' -mindepth 1 -mmin +1 -delete
* * * * * derakupload /opt/script/delete_files_older_than
Сценарий в более низком задании похож на это
#!/bin/bash
find $HOME/subdomain -mindepth 1 -type f -mmin +1 -delete
Я попытался выполнить его в определенные времена в противоположность просто wilfcarding все это, не работал.
Я понятия не имею, что я делаю неправильно больше.
Это - постоянный источник беспорядка, следующего из различия между системой crontabs (/etc/crontab
и связанные файлы в /etc/cron.d
) и пользователь crontabs (включая это для пользователя root
, обычно получаемый доступ через sudo crontab -e
) - от DEBIAN SPECIFIC
раздел man cron
:
Support for /etc/cron.d is included in the cron daemon itself, which
handles this location as the system-wide crontab spool. This directory
can contain any file defining tasks following the format used in
/etc/crontab, i.e. unlike the user cron spool, these files must provide
the username to run the task as in the task definition.
Если действительно необходимо работать find
управляйте как пользователь derakupload
, затем можно или сделать так непосредственно через их собственный crontab, например.
sudo -u derakupload crontab -e
или добавьте его (с пользовательским полем) к /etc/crontab
.
С другой стороны, если find
команда может быть выполнена как корень, просто использовать crontab корня sudo crontab -e
но опустите пользовательское поле derakupload
.