Это мой сценарий:

find /backup/dir -mindepth 1 -depth -mtime +4 -exec rm -rf \{\} \;

И после этого у меня всегда есть не последние 4 резервные копии, а 5.

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

1 ответ1

1

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

find все еще может быть правильным инструментом.

От man find:

-mtime n
Данные файла были последний раз изменены n*24 часа назад. Смотрите комментарии для -atime чтобы понять, как округление влияет на интерпретацию времени модификации файла.

[...]

Числовые аргументы могут быть указаны как

+n больше n ,
[...]

Соответствующий комментарий

Когда команда find выясняет, сколько 24-часовых периодов назад к файлу последний раз обращались, любая дробная часть игнорируется, поэтому для соответствия -atime +1 файл должен быть доступен как минимум два дня назад.

Это означает, что 0 возможно. С -mtime +4 резервные копии, которые сообщают 0 , 1 , 2 , 3 или 4 , остаются без изменений. Я предполагаю, что ваши резервные копии выполняются ежедневно, поэтому каждый из упомянутых номеров сообщается ровно один раз. Пять номеров, пять резервных копий не проходят тестирование, пять резервных копий остаются.

Если вы используете -mtime +3 вместо -mtime +4 резервные копии с отчетами 0 , 1 , 2 или 3 останутся; вероятно, всего четыре резервных копии, количество, которое вы хотели.

См. Также Почему поведение find отличается при использовании -mtime -0 против +0?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .