Posizione del file crontab


53

come molti (la maggior parte?), modifico il mio crontab tramite crontab -e, dove mantengo tutte le operazioni di routine come backup incrementale, ntpdate, varie operazioni rsync, oltre a rendere il mio sfondo del desktop a tema natalizio una volta all'anno. Da quello che ho capito, su una nuova installazione o un nuovo utente, anche questo crea automaticamente il file se non esiste. Tuttavia, voglio copiare questo file su un altro utente, quindi dov'è il file effettivo che sto modificando?

Se questo varia tra le distro, sto usando Centos5 e Mint 17


15
+1 solo per rendere lo sfondo del desktop a tema natalizio una volta all'anno
Celada

5
@Celada Potrebbe non essere frequente, ma è comunque un compito di routine.
Jarmund,

Risposte:


54

La posizione dei cronfile per i singoli utenti è /var/spool/cron/crontabs/.
Da man crontab:

Ogni utente può avere il proprio crontab e sebbene questi siano file /var/spool/cron/crontabs, non sono pensati per essere modificati direttamente.


7
Le parole chiave che ci sono "non sono pensate per essere modificate direttamente", quindi questa risposta è incompleta senza il comando di Celada di seguito, che fornisce una risposta più sicura alla parte "copia su un altro utente" della domanda. Se le persone hanno l'abitudine di modificare direttamente i crontab senza inviarli tramite il comando crontab, rinunciano a un sacco di controllo della sanità mentale fornito dal comando.
Monty Harder,

@MontyHarder Sono d'accordo "non sono destinati a essere modificati direttamente", ma cosa succede se ce n'è bisogno, come se fosse necessario effettuare una voce nel crontab tramite uno script bash. devi usare il file esatto, non penso che nessuna interfaccia esterna possa essere d'aiuto in quel caso, correggimi se sbaglio.
Prabhat Kumar Singh,

@PrabhatKumarSingh Non dovresti ancora modificare direttamente il file. Se leggi il comando di Celada di seguito, avresti visto un esempio di come uno script potrebbe manipolare un file crontab senza modificarlo direttamente. man crontabspiega come funziona.
Monty Harder,

34

heemayl ha ragione sulla posizione dei file crontab su Linux, ma potrebbe essere diverso su altri sistemi operativi e "teoricamente" potrebbe anche trovarsi in una posizione diversa su Linux. In sostanza, quando viene fornita un'interfaccia speciale per accedere ai file, è necessario utilizzarla. Questo assicurerà che cronarrivi a controllare i file prima di installarli, assicurati che i file abbiano le autorizzazioni di cui hanno bisogno, ecc ...

Pertanto, è necessario copiare un crontab da un utente a un altro utilizzando tale interfaccia, in questo modo, non accedendo direttamente ai file.

crontab -u <user1> -l | crontab -u <user2>

3
Ci sono molte buone ragioni per cui i file crontab non devono essere manipolati direttamente da qualcosa di diverso dal sistema operativo stesso. Questa è una soluzione molto migliore. Penso davvero che debba essere incorporato nella risposta ufficiale.
Monty Harder,

@MontyHarder Non c'è davvero una risposta "ufficiale". C'è la risposta che la persona che ha scelto ha scelto come personalmente utile (quella con il segno di spunta) e la risposta scelta dalla comunità (con il maggior numero di voti). In breve, hai 15 rappresentanti, puoi suggerire che questa è la risposta giusta votandola. Inoltre, se desideri suggerire miglioramenti all'altra risposta, devi commentare quella risposta, altrimenti il ​​suo autore non verrà informato del tuo commento.
derobert,

2
Il corollario di questa risposta è che si dovrebbe reindirizzare l'output di crontab -lun file, spostare il file sull'altro sistema e reindirizzarlo crontab. O forse anche farlo direttamente ( crontab -l | ssh $remote_host crontab).
Blacklight Shining

6
"quando viene fornita un'interfaccia speciale per accedere ai file, è necessario utilizzarla." Immagina che ogni applicazione abbia fornito un'interfaccia speciale per la modifica dei file di configurazione invece di esporli semplicemente attraverso la fs. Sarebbe abbastanza fastidio di cui tenere traccia.
Witiko,

1
Come richiedente originale, penso che dovrei ponderare su questo: la risposta accettata è stata scelta sulla base della mia domanda in senso letterale; la posizione del file. Le mie intenzioni per quel file sono irrilevanti. Non credo che la modifica nelle informazioni aggiuntive cambi la risposta, ma potrebbe essere considerata superflua.
Jarmund,
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.