Поиск cronjob с crontab -l

Я пытаюсь найти cronjob, который был создан, чтобы гарантировать, что script не дублирует тот же самый cronjob.

Я пытался использовать что-то в этих строках, но не имел большой удачи:

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

Ответ 1

/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'