检查文件是否存在 cron 作业

check file existence cron job

如果 replicationTest.txt 不存在且 replicationTestSeen.txt 确实存在于特定目录中,我正在尝试编写一个 cronjob 来执行操作。现在我正在做的是行不通的。这是我正在做的事情:

0 3 * * 0 [ [ ! -e /dv1/replicationtest/replicationTest.txt ] && [ -e /dv1/replicationtest/replicationTestSeen.txt ] ] && echo 'replication passed' |邮件-s 'Replication Test Passed' myemail@email.com || echo '复制失败' |邮件-s 'Replication failed' myemail@email.com

即使条件适合 cron 电子邮件复制通过,它仍然电子邮件复制失败。

您正在混合 tests。这种 [ [ ... ] && [ ... ] ] 的模式不应该起作用。有关详细信息,请参阅 this answer。如果您将测试更改为此,它应该可以工作:

[[ ! -e ... ]] && [[ -e /dv1/... ]]

在将条件放入 crontab 之前先在 cron 之外测试它们。并确保 which shell your cron is actually set to use.