У меня в /etc/cron.weekly есть скрипт очистки старых билдов
find /storage/builds -type d -links 2 -mtime +365 | xargs rm -rf
Билды там лежат лежат разные, с разной структурой каталогов, поэтому я ищу последний каталог в дереве чтобы не удалить лишнего. -links 2
это магия, выдающая как раз последние каталоги в дереве.
Внезапно я обнаружил, что кто-то меняет mtime этим самым последним каталогам и тем самым не даёт их удалять. Причем этот кто-то судя по всему и есть этот самый скрипт.
Cтруктура примерно следующая
storage
└─builds
└─someproject
└─100500 Sep 24 2019
└─client Sep 29 2020
│ └─client.rpm Sep 24 2019
└─server Sep 29 2020
└─server.rpm Sep 24 2019
Билд случился больше года назад, а потом кто-то изменил время модификации каталогам client и server. Причём время изменено только у каталогов попадающих в выдачу find и сделано это в течении недели после того как им исполнился год. Поэтому главный подозреваемый - сам запускающийся раз в неделю скрипт очистки, который почему-то вместо удаления обновил время модификации. C -ctime
ситуация та же. Случай не единичный, таких довольно много.
Как и почему такое может произойти? У меня только версия бага в файловой системе.