Linux 使用crontab-l搜索cronjob

Linux 使用crontab-l搜索cronjob,linux,bash,grep,cron,Linux,Bash,Grep,Cron,我试图找到一个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 /var/spool/cron/crontab是crontab文件的常用父目录。那里有些文件有用户名

我试图找到一个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

/var/spool/cron/crontab
是crontab文件的常用父目录。那里有些文件有用户名——例如,root是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'

执行这些行之后发生了什么?不需要xargs。你为什么想要grep-l?也许只是
如果!crontab-l | grep-q'..';然后
应该可以工作了。最后,要调试这种情况,请执行内部元素,然后附加下一部分,即
crontab-l
(这会产生您期望的输出吗?),然后
crontab-l |……
。祝你好运。你看,它也起作用了!非常感谢。我改变了常规,如下所示,它可以根据需要工作。如果!crontab-l | grep-q'/var/www/arix/update1.php';然后echo“Cronjob不存在”感谢@user0000001,这是一种格式化它的有用方法。