Сначала эта команда найдет и удалит все файлы старше 7 дней в любом подкаталоге /home
, имя которого начинается с securityuser
:
find /home/securityuser* -mtime +6 -type f -delete
Вам нужно, -mtime +6
а не +7
потому, что -mtime
отсчитывает 24-часовой период. Как объясняется в -atime
разделе man find
( -mtime
работает так же):
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
Итак, чтобы найти файл, который был изменен 7 или более дней назад, вам необходимо найти файлы, которые были изменены более 6 дней назад, следовательно -mtime +6
.
Следующим шагом будет запуск этой команды один раз в день. Так как каждый из них securityuserN
является отдельным пользователем (вы можете переосмыслить эту настройку, все усложняется), его нужно запускать с правами root. Итак, отредактируйте /etc/crontab
:
sudo nano /etc/crontab
И добавьте эту строку:
@daily root find /home/securityuser* -mtime +6 -type f -delete
Это будет запускать find
команду один раз в день и удалять файлы.
/home
обычно содержит подпапку для каждого пользователя. Если вы не хотите хранить резервные копии как разные пользователи (не очень хорошая идея), вам следует рассмотреть другое место, например,/home/security/backup1
и так далее.