我正在尝试查找一个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/crontabs
是 crontab 文件的通常父目录。那里有一些以用户名称命名的文件 - 比如说 root 是 root 用户的 crontab 文件。每个系统用户都有可能使用 crontab -e 命令创建自己的 crontab。
作为 root 用户,您可以:
cd /var/spool/cron/crontabs
grep 'search string' *
以下命令(以root身份)可以告诉您哪个用户的crontab中包含该字符串。如果存在的话。
如果您不确定crontabs中有哪些内容,则会执行此操作。`crontab -l`只会提供您的crontab中的信息,即当前登录用户的信息。如果您确定这是最好的检查位置:
crontab -l | grep -q 'search string' && echo 'entry exists' || echo 'entry does not exist'
grep -l
?也许只需要if ! crontab -l | grep -q '....' ; then
就可以了。最后,为了调试这个情况,先执行内部元素,然后附加下一部分,即crontab -l
(它是否产生了你期望的输出?),然后是crontab -l | ...
。祝好运。 - shellter