我正在编写一个 shell 脚本来将 mysql 备份作为 cron 作业运行,但遇到了问题,即 rackspace cloud sites cron 环境不支持 find 命令。任何使用 find 命令的尝试都会给出:/usr/bin/find:权限被拒绝
除了这样做,还有什么其他选择:
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
答案1
如果不存在该副本,我建议您上传自己的 find 副本。
如果不起作用,可以使用以下 Perl 脚本文件::查找模块可能会有用。
答案2
这可能是 PATH 环境问题。正如评论者提到的,您可能需要在 cron 中尝试完整路径。
尝试
whereis find
which find
locate find
看看您是否可以识别要查找的完整路径。
在 Red Hat 系统上,find 是 findutils RPM 的一部分,通常位于:
/usr/bin/find
因此,请将您的 cron 重写为:
/usr/bin/find *.gz -mtime +7 -delete