Я создал задания крона для своего сайта, который упоминается ниже, и они хорошо работают. Я печатаю все задание крона при помощи этого Сценария 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
команда, которая удаляет все задание крона из моего сервера, но я хочу удалить определенное задание крона.
Можно ли помочь мне для решения?
Чтобы добавить задание в crontab:
(crontab -u mobman -l; echo "* / 5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
Чтобы удалить задание из crontab:
crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl' | crontab -u mobman -
Удалить все из crontab:
crontab -r
Нет ничего сложного: -
- это STDOUT в Linux!
С помощью корневого запроса типа
crontab -e
Теперь вы можете редактировать файл и удалить строку, которую хотите удалить. Вы также можете использовать это для редактирования crontab для пользователей, если у вас есть подсказка для этого пользователя.
Кстати: Я предпочитаю добавлять cronjobs в /etc/crontab
. Мне кажется немного более гибким.
Используйте следующий синтаксис для просмотра пользователя waqleh cronjob:
crontab -u waqleh -l
Просто введите следующую команду:
crontab -l
crontab -u USERNAME -l
Это должно отобразить содержимое сценария crontab.
Задание cron также можно запустить из файла / etc / crontab. Чтобы просмотреть его, введите:
less /etc/crontab
Если и только если вы хотите остановить все задания cron, вы можете полностью удалить их с помощью:
crontab -r
Это удаляет весь файл crontab для текущего пользователя, поэтому будьте осторожны, если там перечислены другие задания cron!
crontab -e
crontab -u USERNAME -e
каждая строка представляет собой задание cron. Вы можете удалить любой cron (если вы используете nano, нажав ctrl + k), затем сохраните и выйдите из
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -
crontab -l
перечисляет текущие задания crontab
grep -v
фильтр некоторой строки
crontab -
добавляет все распечатанное в файл crontab.
Вы можете запустить crontab
без аргументов, и скормить ему новый crontab через stdin.
Чтобы закомментировать задание cron в , скажем, строке 2, используйте эту команду в своей оболочке:
crontab -l | sed '2 s/^/#/g' | crontab -
Замените число 2
номером строки по вашему выбору или удалите это все вместе, чтобы закомментировать все задания.
Его можно вызвать программно через само задание cron, например, чтобы прокомментировать все задания в 12:00, добавьте эту строку в свой crontab:
0 12 * * * crontab -l | sed 's/^/#/g' | crontab -
Для тех, кто вроде меня не может выйти из vi:
EDITOR=nano crontab -e
В редакторе вы можете удалить / изменить все, что хотите