Как создать задание крона, которые автоматически удаляют файлы, которые являются более старыми, чем 30 дней?

Я использую рабочий стол Ubuntu 14. Я использую эту машину для резервного копирования других машин и как FTP-сервера для камер видеонаблюдения.

Я должен создать задание крона, которое автоматически удаляет файлы, которые являются более старыми, чем 30 дней. Я сделал некоторый поиск, и я думаю, что нашел правильную команду, но я хочу удостовериться, что я не пропускаю что-то прежде, чем выполнить его.

* 4 * * * find /home/USER/DIRECTORY1/DIRECTORY2/ -mindepth 1 -type f -mtime 29 -delete

Я должен поместить "sudo" в перед командой находки?

Я должен поместить "+" перед количеством дней "29"?

0
задан 13 April 2018 в 01:23

2 ответа

Во-первых, поместите Ваш find ... команда в bash сценарий и вызов что сценарий от Вашего crontab. Если у Вас есть зашифрованный корневой каталог (cat /home/.ecryptfs/$USER/.ecryptfs/Private.mnt), необходимо будет сохранить сценарий вне Вашего $HOME дерево каталогов. Хранение команды в crontab делает конфигурирование, вход и отладку тяжелее, и crontab, синтаксический анализатор команды не так умен как bash.

1131-секундный, всегда, Всегда, ВСЕГДА тест find с [1 110], и заставляют это работать, прежде, чем рассматривать -delete.

В-третьих, find тест" -mtime 29" говорит find, "Находят файл mtime, и возврат True, если это равно [1 117]. Необходимо использовать -mtime +29, который find видит как" more than 29", который является тем, что Вы хотите. От [1 121]:

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

Четвертый, быть уверенными у Вас есть Доступ для записи к каталогам в [1 122].

Пятый, Вы имеете в виду /home/USER/DIRECTORY1/DIRECTORY2/ или /home/$USER/DIRECTORY1/DIRECTORY2/? Если $USER для идентификатора пользователя пользователя, у Вас есть проблема: cron не определяет $USER во времени выполнения enviroinment. Это действительно определяет $HOME, таким образом, Вы могли использовать $HOME/DIRECTORY1/DIRECTORY2.

0
ответ дан 14 April 2019 в 23:18

Я использую для удаления резервных копий, более старых, чем 10 дней, и это выглядит примерно так:

50 17 * * * find /path/to/files/filename* -type f -mtime +10 | xargs rm

я использую filename*, потому что они для резервных копий, таким образом, они были бы похожи на это:

filename04-04-2018.tar.gz
filename04-05-2018.tar.gz
filename04-06-2018.tar.gz
0
ответ дан 14 April 2019 в 23:18

Другие вопросы по тегам:

Похожие вопросы: