web-dev-qa-db-fra.com

Comment supprimer ou supprimer un seul travail cron à l'aide de la commande linux?

J'ai créé des emplois cron pour mon site (voir la liste ci-dessous) et ils fonctionnent bien. J'imprime tous les travaux cron en utilisant ce script PHP:

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

Quelles sorties:

[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

Maintenant, je veux supprimer ou supprimer un seul travail cron de mon serveur par commande. Par exemple, je souhaite supprimer le travail cron "0 0 * * * wget php -q http://www.example.com/event_reminder.php" du serveur.

J'ai essayé la commande crontab -r qui supprime tous les travaux cron de mon serveur, mais je souhaite supprimer un travail spécifique.

Pouvez-vous m'aider s'il vous plaît pour la solution?

34
anumavu
  1. Pour ajouter un travail à crontab:

    (crontab -u mobman -l ; echo "*/5 * * * * Perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. Pour supprimer un travail de crontab:

    crontab -u mobman -l | grep -v 'Perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. Supprimer tout de crontab:

    crontab -r
    

Rien n’est délicat: - est STDOUT sous Linux!

52
Greg Hanis

À partir d'un type d'invite racine

crontab -e

Vous pouvez maintenant modifier le fichier et supprimer la ligne à supprimer. Vous pouvez également l'utiliser pour éditer la crontab pour les utilisateurs si vous avez l'invite pour cet utilisateur.

Au fait: je préfère ajouter des tâches cron à /etc/crontab. Cela me semble un peu plus souple.

20
Rinzwind

Voir les utilisateurs

Utilisez la syntaxe suivante pour afficher waqleh cronjob de l'utilisateur:

crontab -u waqleh -l

Voir le Cronjob de l'utilisateur racine

Il suffit de taper la commande suivante:

crontab -l

Cela devrait lister le contenu du script crontab.

Afficher/etc/crontab

Une tâche cron peut également être exécutée à partir du fichier/etc/crontab. Pour le voir, entrez:

less /etc/crontab

Supprimer tous les travaux cron

Si et seulement si vous voulez arrêter tous les travaux cron, vous pouvez les supprimer entièrement avec:

crontab -r

This supprime tout le fichier crontab, donc faites attention si vous avez d'autres tâches cron répertoriées ici!

Supprimer des tâches cron spécifiques

Ouvrez le fichier cron et supprimez le ou les cron (s) que vous souhaitez supprimer

crontab -e

chaque ligne représente un travail cron. Vous pouvez supprimer n'importe quel cron en utilisant ctrl + k puis enregistrez et quittez

7
Waqleh
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l liste les travaux crontab en cours

grep -v filtrer une ligne

crontab - ajoute tous les éléments imprimés dans le fichier crontab.

1
Diego D

Vous pouvez exécuter crontab sans arguments et le nourrir avec la nouvelle crontab via stdin.

0
geirha