Come rimuovere o cancellare un singolo lavoro cron usando il comando linux?


40

Ho creato lavori cron per il mio sito che è elencato di seguito e stanno funzionando bene. Stampo tutto il cron job usando questo script PHP:

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

Quali uscite:

[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

Ora voglio eliminare o rimuovere un singolo processo cron dal mio server tramite comando. Ad esempio, desidero rimuovere il processo cron " 0 0 * * * wget php -q http://www.example.com/event_reminder.php" dal server.

Ho provato il crontab -rcomando che rimuove tutti i cron job dal mio server ma voglio rimuovere cron specifici.

Potete per favore aiutarmi per la soluzione?

Risposte:


61
  1. Per aggiungere un lavoro a crontab:

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. Per rimuovere un lavoro da crontab:

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. Rimuovi tutto da crontab:

    crontab -r
    

Niente è complicato: -STDOUT in Linux!


1
Greg: Benvenuto in Ask Ubuntu! ;-) Potresti per favore rivedere le mie modifiche e anche rivedere l' aiuto di modifica per migliorare la leggibilità delle tue risposte in futuro ... ;-)
Fabby,

4
Sostituisci 1. Per aggiungere un lavoro a crontab con (crontab -u mobman -l 2> / dev / null; echo "* / 5 * * * * perl /home/mobman/test.pl") | crontab -u mobman - (ref: stackoverflow.com/questions/4880290/... )
Yasiru G

1
@YasiruG Penso che crontab -l 2 > /dev/nullsia necessario solo se non vuoi vedere il messaggio no crontab for <user>se non esiste un cron job esistente. A proposito, non abbiamo bisogno dell'opzione -u mobmanse vogliamo aggiungere il lavoro cron per l'utente corrente.
Baptx,

23

Da un tipo di prompt di root

crontab -e

Ora puoi modificare il file e rimuovere la riga che desideri rimuovere. Puoi anche usarlo per modificare crontab per gli utenti se hai il prompt per quell'utente.

A proposito: preferisco aggiungere cronjobs a /etc/crontab. Mi sembra un po 'più flessibile.


Questo sembra più facile e ha più senso della magia degli script, ma vorrei essere più simile ai maghi.
Jason Sebring,

Ottimo per le modifiche manuali, ma per l'automazione controlla lo script sopra -
AFP_555

7

Visualizza utenti Cronjob

Utilizzare la sintassi seguente per visualizzare il cronjob dell'utente waqleh :

crontab -u waqleh -l

Visualizza Cronot utente root

Basta digitare il seguente comando:

crontab -l

Questo dovrebbe elencare il contenuto dello script crontab.

Visualizza / etc / crontab

Un cronjob può anche essere eseguito dal file / etc / crontab. Per vederlo, inserisci:

less /etc/crontab

Rimuovi tutti i lavori cron

Se e solo se si desidera interrompere tutti i processi cron, è possibile rimuoverli completamente con:

crontab -r

Questo rimuove l'intero file crontab quindi fai attenzione se hai altri lavori cron elencati qui!

Rimuovi specifici lavori cron

Apri il file cron ed elimina i cron che desideri rimuovere

crontab -e

ogni riga rappresenta un lavoro cron. Puoi rimuovere qualsiasi cron usando ctrl + k quindi salva ed esci


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

crontab -l elenca i lavori crontab correnti

grep -v filtra qualche riga

crontab - aggiunge tutte le cose stampate nel file crontab.


0

È possibile eseguire crontabsenza argomenti e alimentare il nuovo crontab tramite stdin.


@qeirha .. Voglio rimuovere specifici lavori cron dal mio server
anumavu

@anumavu, giusto, quindi lo leggi con crontab -l, come hai già fatto, rimuovi il lavoro dall'elenco, quindi riscrivilo crontab.
geirha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.