Esistono due modi per modificare uno crontab
:
interattivamente, usando crontab -e
, che si aprirà crontab
nell'editor specificato da $VISUAL
o $EDITOR
, o
in modo non interattivo, utilizzando crontab crontab.txt
, che importerà semplicemente le crontab
voci dal file crontab.txt
, sostituendo il crontab attivo esistente per l'utente corrente.
Il problema che hai è che stai semplicemente usando il crontab
comando sbagliato.
Quanto segue riguarda la manipolazione crontab non interattiva:
Quindi, per rimuovere determinate attività a livello di codice, potresti fare qualcosa del genere
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
dove si PATTERN
trova un'espressione regolare che corrisponderà alle attività che desideri rimuovere. Qui, crontab -l
ti darà la tua corrente crontab
.
Oppure, se hai voci in un file chiamato crontab-fragment.txt
che desideri rimuovere dal crontab attivo,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Questo legge l'attuale crontab e filtra (rimuove) qualsiasi riga presente anche nel file crontab-fragment.txt
nella directory corrente (usando un confronto di stringhe di riga completa). Il risultato viene salvato crontab.txt
e quindi caricato da lì per sostituire l'attuale crontab.
Per aggiungere una o più attività , fai qualcosa di simile
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Ciò presuppone che il file crontab-fragment.txt
contenga le voci che si desidera aggiungere. Legge l'attuale crontab, aggiunge le voci crontab-fragment.txt
a questo e crea crontab.txt
. Il crontab.txt
file sostituisce quindi il crontab corrente.