linux用exec查找>在cron里面不工作

时间:2013-09-07 16:38:59

标签: bash crontab

我创建了一个简单的bash脚本:查找一些文件并执行命令。 此命令必须输出每次执行时需要存储的内容。

所以,我有类似的东西:

find /some/folder/ -name "*txt" -exec /bin/sh -c "/path/command -x -f {} > {}.pdf" \;

所以,我会在 / some / folder / 中找到txt文件,并且我将执行 / path / command 并将文件路径传递给参数 -f / path / command 并将获得二进制文件,因此我只需要输出并添加后缀 .pdf

问题在于,当我手动执行此操作时,一切都很顺利。 但当我把它放在一个cron中时,会发生这种情况:

  • 如果存在 /some/folder/sample.txt 我有一个 /some/folder/sample.txt.pdf (所以,发现> 似乎工作正常)但似乎是由 / path / command 执行但没有 -f /some/folder/sample.txt参数。
  • / path / command 似乎无法获取 -f /some/folder/sample.txt 并在创建的 / some / folder /中输出警告消息sample.txt.pdf 表示需要获取 -f 参数。

请注意,如果我通过命令行(而不是cron)执行此操作,一切都很顺利。

我在这里做错了吗?

感谢您的支持。

1 个答案:

答案 0 :(得分:0)

你应该使用绝对值。

'/ usr / bin / find'instaed'find'

要查看错误,请以这种方式调用命令行

env -i  mycommands ....

这将剥离会话环境,并在与cron环境非常相似的环境中运行命令。

然后更正crontab中的条目。