crontab

Come pianificare un'attività in Linux?

Come pianificare un'attività in Linux?
Ogni volta che si utilizza un sistema operativo basato su UNIX, alcune attività devono essere eseguite ripetutamente. Eseguirli manualmente ogni singola volta richiede tempo e nel complesso inefficiente. Per risolvere questo problema, UNIX viene fornito con i suoi pianificatori di attività integrati. Questi pianificatori di attività si comportano come una sveglia intelligente. Quando l'allarme si attiva, il sistema operativo eseguirà l'attività predefinita.

Nel caso di Linux, viene fornito con due strumenti di base ma potenti: Cron daemon (programma di pianificazione delle attività predefinito) e at (più adatto per la pianificazione delle attività una tantum).

In questa guida, scopri come pianificare un'attività in Linux.

Pianifica le attività in Linux

cron
Il demone cron è responsabile dell'esecuzione di molti lavori in momenti specifici. Queste attività vengono generalmente eseguite in background in orari pianificati. Offre una grande flessibilità indipendentemente dall'attività, indipendentemente dall'intervallo (ora, settimana, mese, anno o altro).

Cron tiene traccia delle sue azioni utilizzando il file crontab. Il file crontab è uno script che contiene tutte le informazioni necessarie per eseguire tutti i lavori cron.

Diamo una rapida occhiata ad alcuni degli usi di base di cron. Nel caso di uno dei seguenti comandi, verrà configurato per l'utente root se viene eseguito con privilegio sudo. Per la dimostrazione, ho preso un file crontab di esempio da qui.

Per elencare tutti i cron job pianificati per l'utente corrente, esegui il seguente comando. Stamperà tutto il contenuto del file crontab.

$ crontab -l


Vuoi l'elenco dei lavori cron per un utente diverso? Esegui invece questo comando.

$ sudo crontab -u -l


Per modificare lo script crontab, esegui il comando. Per modificare il file crontab per root, esegui il seguente comando con privilegio sudo.

$ crontab -e


Ogni riga nello script crontab definisce un'attività. Ecco una rapida ripartizione delle voci crontab.

$

Ecco un elenco di tutti i valori possibili per tutti questi campi. Se viene utilizzato un asterisco (*) invece di un valore numerico, verrà utilizzato ogni possibile valore del campo.

  • minuto: da 0 a 59
  • ore: da 0 a 23
  • giorno del mese: da 1 a 31
  • mese: da 1 a 12
  • giorno della settimana: da 0 (domenica) a 6 (sabato)

Per una guida approfondita su come utilizzare crontab per automatizzare le attività, controlla come configurare i lavori cron in Linux. Ecco un altro rapido esempio di un cron job in esecuzione ogni minuto.

a
Sebbene cron sia il modo principale per la pianificazione delle attività, at offre la possibilità di eseguire un comando/script in un momento specifico o a un intervallo fisso, si noti che at eseguirà il lavoro di destinazione una volta mentre cron eseguirà nuovamente il lavoro all'intervallo. Lo strumento at è meno popolare rispetto a cron, ma è relativamente più facile da usare. Puoi utilizzare determinate parole chiave come mezzanotte o ora del tè (4 P.M.).

Questo strumento non è preinstallato nella maggior parte delle distribuzioni Linux. Per installare su, esegui il comando appropriato in base alla tua distribuzione.

Per Debian/Ubuntu e derivati.

$ Sudo apt install -y at


Per CentOS/RHEL e derivati.

$ yum installa su

Per Arch Linux e derivati.

$ sudo Pacman -S at

Per Fedora e derivati.

$ sudo dnf install at

Al termine dell'installazione, abilitare il demone at.

$ sudo systemctl enable --now atd.servizio


Il modo di lavorare è un po' diverso. Ogni volta che chiami a, devi definire l'intervallo di esecuzione dell'attività desiderata. Ad esempio, per eseguire un determinato comando dopo un'ora, utilizzare il seguente comando.

$ in questo momento + 1 ora


Per eseguire l'attività desiderata a 6 P.M., tra sei giorni, esegui invece il seguente comando.

$ alle 18:00 + 6 giorni


Quando esegui il comando, a volontà chiederà l'esecuzione del comando(i). Per uscire dal prompt at, premere "Ctrl + d.” A presenterà un riepilogo delle attività pianificate e l'ora in cui verranno eseguite.

Questo è solo un uso di base. Un modo più coerente di utilizzare at potrebbe essere l'esecuzione di uno script bash contenente tutte le attività che devono essere eseguite. Interessato a saperne di più sullo scripting bash? Dai un'occhiata

$ alle 18:00 + 6 giorni -ff