使用crontab -l搜索cronjob

use*_*001 17 linux bash cron grep

我试图找到一个创建的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
Run Code Online (Sandbox Code Playgroud)

jim*_*ara 32

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

作为root,你可以:

cd /var/spool/cron/crontabs
grep  'search string' *
Run Code Online (Sandbox Code Playgroud)

此命令(以root身份)将告诉您用户的crontab具有该字符串.如果它存在.

如果你不确定crontabs是什么,你会这样做. crontab -l只提供你的crontab中的东西,当前登录的用户.如果你确定这是最好检查的地方:

crontab -l | grep -q 'search string'  && echo 'entry exists' || echo 'entry does not exist'
Run Code Online (Sandbox Code Playgroud)

  • 这非常有效!谢谢!! (3认同)
  • 有效!谢谢你。我将例程更改为如下所示,它可以根据需要工作。如果 !crontab -l | grep -q '/var/www/arix/update1.php'; 然后回显“Cronjob 不存在” (2认同)