Devo salvare il mio file crontab in / tmp?


11

Ssh su un server e voglio aggiungere alcuni lavori quotidiani (in particolare per rinnovare i ticket Kerberos anche quando esco e voglio ancora che i miei programmi sullo schermo o tmux continuino a funzionare) su cron. Quindi corro crontab -ee aggiungo quanto segue,

00 00 * * * kinit -R
00 12 * * * kinit -R

Quando lo salvo, mi viene chiesto dall'editore:

File Name to Write: /tmp/crontab.HMpG7V 

Non è che i file in /tmppossono essere eliminati dal sistema operativo? Soprattutto dopo che mi sono disconnesso dal server?

Dove devo archiviare il mio file crontab? Posso salvare il file crontab in $ HOME o spazio migliore?


Posso salvare il file crontab in $ HOME? Perché ho bisogno di un link simbolico?
Tim

Risposte:


15

crontab -eapre un file in / tmp invece del crontab effettivo in modo che possa verificare la presenza di errori nel nuovo crontab e impedire all'utente di sovrascrivere il crontab effettivo con tali errori. Se non ci sono errori, il tuo crontab effettivo verrà aggiornato. Se crontab -ehai appena scritto direttamente sul tuo crontab reale, rischieresti di non eseguire tutti i tuoi cronjob a causa di un errore di sintassi nel tuo nuovo crontab.

sudoedit, visudo, vipw, Ecc operare sullo stesso principio.

Non preoccuparti, il tuo crontab reale vive in una posizione non volatile sul disco.


dove si trova eventualmente il mio file crontab? Se esco dal server, cosa accadrà al mio file crontab? (Non sono un amministratore e non ho accesso root al server)
Tim

1
il tuo crontab reale abita da qualche parte /var/spool(in genere), ma non dovresti mai toccare il tuo crontab reale e non dovresti mai, neanche usare - crontab -einvece. Probabilmente non hai il giusto livello di accesso per modificare comunque il file crontab non elaborato.
jayhendren,

se esci, non succederà nulla al tuo crontab. non vive in / tmp.
jayhendren,

(1) Il file crontab è per singolo utente o per tutti gli utenti? (2) Come posso verificare se la mia modifica al file crontab funziona?
Tim

i crontab sono per utente. per verificare che il tuo cronjob sia in esecuzione, puoi controllare i log cron. in genere in /var/log/cron.log, ma potrebbe essere anche in altre posizioni.
Jayhendren,

5

/tmpè dove viene scritto il file temporaneo crontab. Dopo aver salvato e chiuso, crontable modifiche verranno trasferite in una directory diversa e più appropriata sul sistema (in genere /var/spool/cron, se ricordo bene). Quindi, non ti preoccupare, il sistema operativo potrebbe eliminare il tuo / tmp, ma non toglierà mai i tuoi crontab.


1

I file crontab risiedono in / var / spool / cron / crontabs / sotto il proprio nome utente o ID utente. Poiché possono verificarsi situazioni in cui il crontab situato qui non è più collegato al proprio account di accesso, si consiglia di salvarne una copia nella directory home, ad esempio /home/userid/.crontab, in modo da poterlo ripristinare facilmente nel caso fosse necessario per. Questo ti consente anche di metterlo sotto controllo di revisione, se lo desideri.

Se la tua home directory viene spostata su un altro sistema, spesso il crontab dalla directory di spool non lo accompagna a meno che l'amministratore di sistema non ne tenga conto. Né / var / spool viene sempre eseguito il backup o il ripristino quando è necessario ripetere un sistema.

Quindi, di nuovo, si consiglia di conservare una copia del crontab nella directory home.

Usa il tuo editor preferito (pico, vi, emacs, ecc.) Per modificare ~ / .crontab e quindi usa crontab per applicarlo a / var / spool / crontabs. Come questo:

% pico ~/.crontab; crontab ~/.crontab

Se ti piacciono gli alias, puoi invece eseguirne uno da eseguire.


1
Devo fare qualcosa per fare in modo che il file crontab di casa mia sovrascriva i file crontab in un'altra posizione?
Tim

Esegui semplicemente "crontab ~ / .crontab" e lo applicherai a quello in / var / spool / cron / crontabs. Usa pico, emacs o vi per modificare ~ / .crontab prima di fare qualsiasi modifica.
JonathanS

Questo in realtà non risponde alla domanda.
nessuno

@AndrewMedico: la domanda principale sembrava essere "Dove devo archiviare il mio file crontab? Posso salvare il file crontab in $ HOME o spazio migliore?" O ti riferisci alla domanda di Tim nel commento qui?
JonathanS
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.