Я пишу сценарий оболочки для запуска резервного копирования mysql в качестве задания cron, и у меня возникла проблема с командой find, которая не поддерживается в среде cron облачных сайтов в стойке. Любая попытка использовать команду find дает: / usr / bin / find: Permission denied
Какие есть альтернативы:
find *.gz -mtime +7 -delete
когда файлы называются так:
gzip > /mnt/target03/rest-of-path/web/backups/DATABASENAME_`date "+%Y-%m-%d"`.gz
?
Я надеялся, что смогу проанализировать дату файла без использования find в цикле, что-то вроде:
FILES=./path/to/files/*
for f in $FILES
do
#delete files older than 7 days without using find
done
Я бы посоветовал загрузить свою собственную копию find, если ее там нет.
Если это не сработает, сценарий Perl, использующий Файл :: Найти модуль может быть полезен.
Это может быть проблема среды PATH. Как упомянул комментатор, вы можете попробовать полный путь в своем cron.
Пытаться
whereis find
which find
locate find
Чтобы узнать, сможете ли вы определить полный путь для поиска.
В системах Red Hat find является частью RPM findutils и обычно находится по адресу:
/ usr / bin / найти
так что перепишите свой cron как:
/usr/bin/find *.gz -mtime +7 -delete