È male modificare manualmente il file cron?


12

Di solito viene richiesto di introdurre nuovi lavori cron tramite le righe di comando; ma ho trovato più facile (con un migliore controllo delle attività cron correnti) modificare manualmente (nell'editor di testo) il file cron dell'utente come /var/spool/cron/crontabs/root.

È pericoloso modificare il file nell'editor di testo?

I commenti nel file predefinito sono confusi. La prima riga dice

# DO NOT EDIT THIS FILE - edit the master and reinstall.

Ma la quarta riga dice

# Edit this file to introduce tasks to be run by cron.

2
Perché non mettere semplicemente le cose in /etc/cron.d?
Zoredache,

Può essere una buona idea; ma non intendevo quale file modificare, sto confrontando il file di modifica con l'editor o eseguendo il comando crontab.
Googlebot

@Tutto credo che l'unica differenza sia il controllo della sintassi effettuato da crontab-e. È solo un buffer di testo con controllo della sintassi. Puoi anche cambiare il tuo solito editor e crontab-e lo caricherà. L'importanza sulla xintassi è perché tutto il file verrebbe ignorato se si commettesse un errore. Anche se usi uno strumento esterno, dovresti usare crontab-e per leggere il file e inviarlo di nuovo a crontab-e al termine. In questo modo non devi più preoccuparti della sintassi. Meglio dividere i file dalle attività dell'utente e dei sistemi, quindi dovresti usare meglio /etc/cron.d per le attività utente / test.
m3nda,

Risposte:


22

Se si modifica il file utente in crontabs, dovrebbe funzionare. Tuttavia, ci sono due questioni da prendere in considerazione:

  1. Se hai digitato male la voce cron nel file, non verrai avvertito invece di usare il crontab -ecomando.
  2. Non è possibile modificare il file utente in crontabs direttamente senza accedere come root o usando sudo. Verrà visualizzato l'errore di autorizzazione negata.

modificare

Un altro punto da aggiungere. Quando modifichi direttamente il file, potresti essere avvisato dall'editor di testo se hai aperto il file due volte (due utenti accedono allo stesso file). Tuttavia, l'elenco cron verrà sovrascritto quando si utilizza crontab -eda due diverse sessioni di shell dello stesso utente. Questa è un'altra differenza.


punti molto sottili! Non ho mai affrontato (saputo) il secondo problema, poiché lavoro sempre come root.
Googlebot,

4
Inoltre, "non modificare" nel file predefinito è perché un aggiornamento / reinstallazione potrebbe sovrascrivere quel file.
Chris S,

Non hai menzionato che un utente che modifica il crontab perde direttamente il controllo di santax che crontab -efornisce.
Adam F,

1
@AdamF: ecco di cosa parla il punto 1!
Khaled,

8

Se ho capito bene, stai modificando il file manualmente con un editor di testo perché non vuoi usare crontab -e. Immagino che sia perché usa vi come editor e non hai familiarità con esso.

Cambia crontab -e (e altre cose che richiedono un editor) per usare il nano editor più familiare eseguendolo

export EDITOR=nano

prima

crontab -e

Puoi rendere nano l'editor predefinito di permament modificando il tuo file ~ / .bash_profile da includere export EDITOR=nanoalla fine.

Per rispondere alla tua domanda, non dovresti modificare direttamente il file perché potrebbe essere sovrascritto senza che tu lo sappia. La quarta riga dice ciò che dice perché proviene dal crontab che dovresti modificare manualmente (lo direbbe come la prima riga).


Grazie per la risposta descrittiva. Conosco perfettamente il comando vi dell'editor crontab; ma uso gedit (non nel terminale ssh), poiché mi collego direttamente al server dal mio desktop linux.
Googlebot

Consiglio anche di aggiungere il comando export EDITOR nel tuo file bashrc per evitare di scriverlo ogni volta che accedi a ssh.
m3nda,

1
export VISUAL=vi

Questo è il modo corretto di cambiare editor per crontab.

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.