Как удалить или удалить единственное задание крона с помощью команды Linux?

Я создал задания крона для своего сайта, который упоминается ниже, и они хорошо работают. Я печатаю все задание крона при помощи этого Сценария PHP:

$cronfiles=exec('crontab -l',$output);
echo "<pre>";
print_r($output);

Какие выводы:

[0] => 0 0 * * * wget php -q http://www.example.com/report_send.php
[1] => 0 0 * * * wget php -q http://www.example.com/event_reminder.php
[2] => 0 0 * * * wget php -q http://www.example.com/user_reminder.php
[3] => * * * * * wget php -q http://www.example.com/cleardata.php

Теперь я хочу удалить или удалить единственное задание крона от моего сервера до команды. Например, я хочу удалить задание крона"0 0 * * * wget php -q http://www.example.com/event_reminder.php"с сервера.

Я попробовал crontab -r команда, которая удаляет все задание крона из моего сервера, но я хочу удалить определенное задание крона.

Можно ли помочь мне для решения?

59
задан 2 September 2015 в 18:45

7 ответов

  1. Чтобы добавить задание в crontab:

     (crontab -u mobman -l; echo "* / 5 * * * * perl /home/mobman/test.pl") |  crontab -u mobman -
     
  2. Чтобы удалить задание из crontab:

     crontab -u mobman -l |  grep -v 'perl /home/mobman/test.pl' |  crontab -u mobman -
     
  3. Удалить все из crontab:

     crontab -r
     

Нет ничего сложного: - - это STDOUT в Linux!

89
ответ дан 2 September 2015 в 18:45

С помощью корневого запроса типа

crontab -e

Теперь вы можете редактировать файл и удалить строку, которую хотите удалить. Вы также можете использовать это для редактирования crontab для пользователей, если у вас есть подсказка для этого пользователя.

Кстати: Я предпочитаю добавлять cronjobs в /etc/crontab. Мне кажется немного более гибким.

32
ответ дан 2 September 2015 в 18:45

Просмотр пользователей Cronjob

Используйте следующий синтаксис для просмотра пользователя waqleh cronjob:

crontab -u waqleh -l

Просмотреть Cronjob текущего пользователя

Просто введите следующую команду:

crontab -l

Файл cron конкретного пользователя

crontab -u USERNAME -l

Это должно отобразить содержимое сценария crontab.

Просмотр / etc / crontab

Задание cron также можно запустить из файла / etc / crontab. Чтобы просмотреть его, введите:

less /etc/crontab

Удалить все задания cron

Если и только если вы хотите остановить все задания cron, вы можете полностью удалить их с помощью:

crontab -r

Это удаляет весь файл crontab для текущего пользователя, поэтому будьте осторожны, если там перечислены другие задания cron!

Добавление / редактирование / удаление заданий cron

Файл cron вашего пользователя

crontab -e

Файл cron конкретного пользователя

crontab -u USERNAME -e

каждая строка представляет собой задание cron. Вы можете удалить любой cron (если вы используете nano, нажав ctrl + k), затем сохраните и выйдите из

10
ответ дан 2 September 2015 в 18:45
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l перечисляет текущие задания crontab

grep -v фильтр некоторой строки

crontab - добавляет все распечатанное в файл crontab.

1
ответ дан 2 September 2015 в 18:45

Вы можете запустить crontab без аргументов, и скормить ему новый crontab через stdin.

0
ответ дан 2 September 2015 в 18:45

Чтобы закомментировать задание cron в , скажем, строке 2, используйте эту команду в своей оболочке:

crontab -l | sed '2 s/^/#/g' | crontab -

Замените число 2 номером строки по вашему выбору или удалите это все вместе, чтобы закомментировать все задания.

Его можно вызвать программно через само задание cron, например, чтобы прокомментировать все задания в 12:00, добавьте эту строку в свой crontab:

0 12 * * * crontab -l | sed 's/^/#/g' | crontab -
0
ответ дан 5 January 2021 в 23:13

Для тех, кто вроде меня не может выйти из vi:

EDITOR=nano crontab -e

В редакторе вы можете удалить / изменить все, что хотите

0
ответ дан 5 January 2021 в 23:13

Другие вопросы по тегам:

Похожие вопросы: