使用 find 的脚本在我执行时运行良好,但从 cron 中无法正确运行

使用 find 的脚本在我执行时运行良好,但从 cron 中无法正确运行

谁能告诉我这个脚本有什么问题?

它无法工作cron,但是当我正常执行它时可以正常工作。

警告:此命令很危险,可能会删除大量文件

#!/bin/bash

/bin/find  .  -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;

答案1

让我们看看你在这里做什么:

/bin/find  .  -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;

查找所有文件夹当前目录.)已创建超过 2 天并rm -rf在其上执行。

cronjob 的当前工作目录是用户主目录,对于root/ sudocronjobs 来说它是/root

如果您真的很幸运,您使用了sudo crontab,并且它没有任何危害,因为/root目录通常不在 Ubuntu 中使用。

如果没有,你基本上删除了家里超过 2 天的所有目录。这应该或多或少是一些重要的东西。Desktop,,,Pictures...Documents.config


你应该做的是:

使用完整路径:

/bin/find /path/to/my/folder -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;

以任何方式

  • 非常小心谨慎rm -rf,除非您 100% 确定,否则不要使用它。
  • 准备好备份。

答案2

该脚本取决于当前工作目录(.),手动运行和 cron 执行时可能有所不同。

请使用您想要在那里处理的文件夹的绝对路径。

相关内容