GNU/Linux >> Linux Esercitazione >  >> Linux

Come pianificare un comando Rsync?

Buona giornata!

Sto lavorando dal Cile. Il fatto è che la connessione qui è super lenta e attività come avere ogni stazione che aggiorna i suoi pacchetti direttamente a Internet non è semplicemente possibile. Quindi ho un repository locale che vorrei aggiornare tramite rsync solo di notte.

Non ho problemi con rsync, so come usarlo. Dove sono un po' nuovo è in aree come cronjob e cose simili.

Per farla breve, quello che devo fare è aggiornare il mio repository ogni notte. Diciamo che inizia ogni giorno alle 19:00 e si ferma alle 7:00.

Come posso farlo?

Grazie in anticipo.

Cordiali saluti.

PD:Uso Ubuntu 16.04.

Risposta accettata:

Ci sono due modi per usare cron, creando un file in /etc/cron.d/repo-sync con il formato:

<minute> <hour> <day_of_month> <month> <day_of_week> <user> <command>

Ad esempio, per eseguire rsync da src a dest alle 19:00 di ogni giorno puoi usare:

0 19 * * * root rsync -a src dest

Oppure puoi creare un crontab eseguendo crontab -e (come l'utente con cui vuoi eseguire il comando) con una riga come sopra meno l'utente come:

0 19 * * * rsync -a src dest

Personalmente preferisco creare file cron.d per attività di sistema/root, ma entrambi gli approcci avranno un risultato identico.

Ora questo eseguirà il comando una volta all'ora indicata:si fermerà una volta che il comando ha terminato l'esecuzione, quindi non è necessario specificare un comando per interromperlo alle 7:00 poiché si spera che rsync dovrebbe essere completato per allora. Se devi davvero interrompere il comando alle 7:00, puoi emettere un altro processo cron che semplicemente uccide i processi esistenti in un determinato momento.

0 7 * * * root killall rsync

Sfortunatamente questo ucciderà tutti i comandi rsync, il che potrebbe avere effetti collaterali se non altro se si tenta di eseguire rsync contemporaneamente, quindi non consiglio questo metodo.

Puoi andare oltre inserendo il comando rsync all'interno di uno script che scrive il suo pid in un file e usa quel pid nel comando kill per mitigare questo, ma questo potrebbe essere più complicato di quello di cui hai davvero bisogno.

Puoi leggere di più sulla configurazione dei lavori cron qui o qui.

Correlati:come controllare l'intero disco rigido per errori e settori danneggiati?
Linux
  1. Come utilizzare il comando "at" per pianificare un'attività in un momento determinato o successivo in Linux

  2. Come usare il comando Su in Linux

  3. Il comando Linux rsync:come usarlo

  4. Come pianificare i lavori Cron in cPanel

  5. Come pianificare le attività utilizzando in Linux

Come usare il comando Disown in Linux

Come utilizzare il comando SS di Linux

Come rimuovere una directory in Linux

Come usare il comando nohup di Linux

Come usare il comando PS

Come usare il comando TOP