GNU/Linux >> Linux Esercitazione >  >> Linux

Usa anacron per un crontab migliore

Nel 2021, ci sono più ragioni per cui le persone amano Linux che mai. In questa serie, condividerò 21 diversi motivi per utilizzare Linux. L'automazione è uno dei migliori motivi per usare Linux.

Una delle cose che preferisco di Linux è la sua disponibilità a lavorare per me. Invece di eseguire attività ripetitive che mi consumano tempo, che sono soggette a errori o che probabilmente dimenticherò, pianifico Linux in modo che le faccia per me.

Preparazione per l'automazione

Il termine "automazione" può essere tanto intimidatorio quanto attraente. Trovo che aiuti ad affrontarlo in modo modulare.

1. Cosa vuoi che accada?

In primo luogo, sapere quale risultato si desidera produrre. Stai filigranando le immagini? Rimuovere i file da una directory disordinata? Eseguire un backup di dati importanti? Definisci chiaramente il compito per te stesso in modo da sapere a cosa mirare. Se c'è qualche attività che ti ritrovi a svolgere ogni giorno, molto meno di una volta al giorno, potrebbe essere un candidato per l'automazione.

2. Scopri le applicazioni di cui hai bisogno

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Suddividi i grandi compiti in piccoli componenti e impara a produrre ogni risultato manualmente ma in modo ripetibile e prevedibile. Molto di ciò che può essere fatto su Linux può essere sottoposto a script, ma è importante riconoscere i tuoi attuali limiti. C'è un'enorme differenza tra imparare ad automatizzare il ridimensionamento di diverse immagini in modo che possano essere inviate comodamente tramite e-mail rispetto all'utilizzo dell'apprendimento automatico per generare elaborati grafici per la tua newsletter settimanale. Una di queste cose la puoi imparare in un pomeriggio e l'altra potrebbe richiedere anni. Tuttavia, tutti dobbiamo iniziare da qualche parte, quindi inizia in piccolo e cerca sempre modi per migliorare.

3. Automatizzalo

Usa uno strumento di automazione su Linux per farlo accadere regolarmente. Questo è il passaggio trattato in questo articolo!

Per automatizzare qualcosa, è necessario uno script che automatizza un'attività. Durante il test, è meglio mantenere le cose semplici, quindi l'attività automatizzata da questo articolo è la creazione di un file chiamato hello nel /tmp directory:

#!/bin/sh

touch /tmp/hello

Copia e incolla quel semplice script in un file di testo e chiamalo example .

Cron

La soluzione di automazione integrata fornita con ogni installazione di Linux è il sistema cron. Gli utenti Linux tendono a fare riferimento genericamente a cron come al metodo utilizzato per pianificare un'attività (di solito chiamata "cron job"), ma ci sono più applicazioni che forniscono la funzionalità di cron. Il più versatile è cronie; il suo vantaggio è che non presupponi che il tuo computer sia sempre acceso, come fanno le applicazioni cron storiche progettate per gli amministratori di sistema.

Verifica quale sistema cron fornisce la tua distribuzione Linux. Se è qualcosa di diverso da cronie, probabilmente puoi installare cronie dal repository del software della tua distribuzione. Se la tua distribuzione non ha un pacchetto per cronie, puoi usare il vecchio anacron pacchetto invece. Il anacron il comando è incluso con cronie, quindi indipendentemente da come lo acquisisci, vuoi assicurarti di avere anacron comando disponibile sul sistema prima di continuare. Anacron potrebbe richiedere i privilegi di root amministrativo, a seconda della configurazione.

$ which anacron
/usr/sbin/anacron

Il compito di Anacron è garantire che i tuoi lavori di automazione vengano eseguiti regolarmente. Per fare ciò, anacron controlla per scoprire quando è stata eseguita l'ultima volta un lavoro e poi controlla la frequenza con cui gli hai detto di eseguire i lavori.

Supponiamo di impostare anacron per eseguire uno script una volta ogni cinque giorni. Ogni volta che si accende il computer o lo si riattiva dalla modalità di sospensione, anacron ne esegue la scansione dei registri per determinare se è necessario eseguire il lavoro. Se un lavoro è stato eseguito cinque o più giorni fa, anacron esegue il lavoro.

Lavori Cron

Molti sistemi Linux vengono forniti in bundle con alcuni lavori di manutenzione che cron può eseguire. Mi piace mantenere i miei lavori separati dai lavori di sistema, quindi creo una directory nella mia home directory. In particolare, c'è una cartella nascosta chiamata ~/.local ("locale" nel senso che è personalizzato per il tuo account utente piuttosto che per il tuo sistema informatico "globale"), quindi creo la sottodirectory etc/cron.daily per rispecchiare la solita casa di cron sul mio sistema. Devi anche creare una directory di spool per tenere traccia dell'ultima volta che i lavori sono stati eseguiti.

$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron

Puoi inserire qualsiasi script che desideri eseguire regolarmente in ~/.local/etc/cron.daily directory. Copia l'example script nella directory ora e contrassegnalo come eseguibile usando il comando chmod.

$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example

Quindi, imposta anacron per eseguire qualsiasi script si trovi in ​​~/.local/etc/cron.daily directory.

Anacron

Per impostazione predefinita, gran parte del sistema cron è considerato dominio dell'amministratore di sistema perché viene spesso utilizzato per importanti attività di basso livello, come la rotazione dei file di registro e l'aggiornamento dei certificati. La configurazione illustrata in questo articolo è progettata per un utente normale che configura attività di automazione personali.

Per configurare anacron per eseguire i tuoi lavori cron, crea un file di configurazione in /.local/etc/anacrontab :

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1  0  cron.mine    run-parts /home/tux/.local/etc/cron.daily/

Questo file dice ad anacron di eseguire tutti gli script eseguibili (run-parts ) trovato in ~/.local/etc/cron.daily ogni giorno (cioè tutti i giorni), con un ritardo di zero minuti. A volte, viene utilizzato un ritardo di alcuni minuti in modo che il tuo computer non venga colpito da tutte le attività possibili subito dopo l'accesso. Tuttavia, queste impostazioni sono adatte per il test.

Il cron.mine value è un nome arbitrario per il processo. Lo chiamo cron.mine ma potresti chiamarlo cron.personal o penguin o qualsiasi cosa tu voglia.

Verifica il tuo anacrontab sintassi del file:

$ anacron -T -t ~/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Il silenzio significa successo.

Aggiunta di anacron a .profile

Infine, devi assicurarti che anacron funzioni con la tua configurazione locale. Poiché stai eseguendo anacron come utente normale e non come utente root, devi indirizzarlo alle tue configurazioni locali:anacrontab file che dice ad anacron cosa fare e la directory di spool che aiuta anacron a tenere traccia di quanti giorni sono trascorsi dall'ultima esecuzione di ogni lavoro:

anacron -fn -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Il -fn le opzioni dicono ad anacron di ignorare timestamp, il che significa che lo stai costringendo a eseguire il tuo lavoro cron, qualunque cosa accada. Questo è esclusivamente a scopo di test.

Test del tuo lavoro cron

Ora che tutto è impostato, puoi testare il lavoro. Puoi testarlo tecnicamente senza riavviare, ma ha più senso riavviare perché è ciò che è progettato per gestire:sessioni di accesso interrotte e irregolari. Prenditi un momento per riavviare il computer, accedi e quindi cerca il file di prova:

$ ls /tmp/hello
/tmp/hello

Supponendo che il file esista, lo script di esempio è stato eseguito correttamente. Ora puoi rimuovere le opzioni di test da ~/.profile , lasciando questa come configurazione finale:

anacron -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Utilizzo di anacron

Hai configurato la tua infrastruttura di automazione personale, quindi puoi inserire qualsiasi script che desideri che il tuo computer gestisca per te nel ~/.local/etc/cron.daily directory e verrà eseguito come pianificato.

Sta a te decidere quanto spesso vuoi che i lavori vengano eseguiti. Il tuo script di esempio viene eseguito una volta al giorno. Ovviamente, ciò dipende dal fatto che il tuo computer sia acceso e sveglio in un dato giorno. Se usi il tuo computer venerdì ma lo metti da parte per il fine settimana, lo script non verrà eseguito sabato e domenica. Tuttavia, lunedì lo script verrà eseguito perché anacron saprà che è trascorso almeno un giorno. Puoi aggiungere directory settimanali, quindicinali o anche mensili a ~/.local/etc per programmare un'ampia varietà di intervalli.

Per aggiungere un nuovo intervallo:

  1. Aggiungi una directory a ~/.local/etc (ad esempio, cron.weekly ).
  2. Aggiungi una riga a ~/.local/etc/anacrontab per eseguire gli script nella nuova directory. Per un intervallo settimanale, la configurazione sarebbe:
    7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/

    (con il 0 valore facoltativamente essere un certo numero di minuti per ritardare educatamente l'inizio dello script).

  3. Inserisci i tuoi script nel cron.weekly directory.

Benvenuti nello stile di vita automatizzato. Non sembrerà così, ma stai per diventare molto più produttivo.


Linux
  1. Come utilizzo Ansible e anacron per l'automazione

  2. Come usare cron su Linux

  3. Linux vs Windows:quale sistema operativo è migliore per i giochi su PC

  4. Usa Trova e trova per cercare file in Linux

  5. Servizio del sistema operativo Linux "anacron"

Manjaro vs. Ubuntu:cosa è meglio per te?

CloudBerry Uno strumento di backup cloud facile da usare per Linux

50 incredibili comandi Linux Crontab per SysAdmins

15 motivi per utilizzare Manjaro Linux | Arch Linux facile da usare per tutti

6 Distribuzioni Linux per uso didattico

MX Linux 17 Una distribuzione Linux facile da usare per i noob