【问题标题】:Search for a cronjob with crontab -l使用 crontab -l 搜索 cronjob
【发布时间】:2013-01-05 05:30:24
【问题描述】:

我正在尝试查找创建的 cronjob,以确保脚本不会重复完全相同的 cronjob。

我一直在尝试使用这些方面的东西,但运气不佳:

if ! crontab -l | xargs grep -l '/var/www/arix/update.php'; then
  echo "Cronjob already exists"
else
  echo "Cronjob doesn't exist"
fi

【问题讨论】:

  • 执行这些行后发生了什么?
  • 你不需要 xargs。你为什么要grep -l?也许只是if ! crontab -l | grep -q '....' ; then 应该可以工作。最后,为了调试情况,执行内部元素,然后附加下一部分,即crontab -l(会产生您期望的输出吗?)然后crontab -l | ...。祝你好运。

标签: linux bash grep cron


【解决方案1】:

/var/spool/cron/crontabs 是 crontab 文件的常用父目录。那里有包含用户名的文件 - 例如,root 是根 crontab。系统上的每个用户都有可能使用 crontab -e 并创建了自己的 crontab。

作为 root 你可以:

cd /var/spool/cron/crontabs
grep  'search string' *

这个命令(作为 root)会告诉你哪个用户的 crontab 有这个字符串。如果它存在的话。

如果您不确定 crontab 中的内容,您可以这样做。crontab -l 仅提供您的 crontab 中的内容,即当前登录的用户。如果您确定这是检查的最佳位置:

crontab -l | grep -q 'search string'  && echo 'entry exists' || echo 'entry does not exist'

【讨论】:

  • 成功了!谢谢你。我将例程更改为如下所示,它根据需要工作。如果 ! crontab -l | grep -q '/var/www/arix/update1.php';然后回显“Cronjob 不存在”
  • 感谢@user0000001,这是一种有用的格式化方式。
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 2020-04-21
  • 2021-09-26
  • 2021-02-24
相关资源
最近更新 更多