在 Rackspace 云的 cron 环境中,有哪些可以替代“find”的方法?

在 Rackspace 云的 cron 环境中,有哪些可以替代“find”的方法?

我正在编写一个 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

相关内容