Lo sapevi?

A partire dal 2015 abbiamo sviluppato internamente un sistema statefull di protezione dagli attacchi DDoS. Attualmente la protezione di core è erogata grazie a un cluster di server in load balancing. Abbiamo inoltre sviluppato un sistema di pre-filtering a livello di routing. Inoltre, in caso di attacchi superiori alla capacità di rete, le network interessate vengono filtrate grazie alla protezione remota Corero.

Automatizzare manutenzioni e processi della VPS con cron

Estimated reading: 4 minutes 14 views

Aggiornare manualmente il sistema, creare backup, pulire file temporanei o controllare lo spazio, non è pratico e aumenta il rischio di dimenticare attività importanti. Per questo motivo i sistemi Linux includono cron, uno strumento progettato per eseguire automaticamente comandi o script a intervalli di tempo prestabiliti.

Cron funziona tramite un servizio di sistema (detto demone) che controlla costantemente una lista di attività programmate. Quando arriva il momento stabilito, cron esegue il comando associato senza richiedere intervento manuale. Questo meccanismo permette di trasformare molte operazioni di manutenzione della VPS in processi completamente automatici e affidabili.

Come funziona cron

Il funzionamento di cron si basa sui cron job, cioè attività programmate che eseguono un comando in un momento specifico o con una certa frequenza.

Il modo più comune per gestire questi job è tramite il comando:

				
					crontab -e
				
			

Questo comando apre l’editor della tabella cron dell’utente corrente, dove è possibile aggiungere nuove attività automatiche. Ogni riga rappresenta un’operazione programmata e segue una sintassi precisa composta da cinque campi temporali seguiti dal comando da eseguire.

Ogni asterisco rappresenta un valore temporale. La struttura completa di un cron job è:

				
					* * * * * comando
│ │ │ │ │
│ │ │ │ └ giorno della settimana (0–7, dove 0 e 7 indicano domenica)
│ │ │ └ mese (1–12)
│ │ └ giorno del mese (1–31)
│ └ ora (0–23)
└ minuto (0–59)
				
			

Il sistema controlla queste impostazioni ogni minuto. Quando l’orario corrente corrisponde ai valori indicati, cron esegue il comando specificato.

Ad esempio, un cron job che esegue uno script ogni giorno alle 03:00 è:

				
					0 3 * * * /home/user/script.sh
				
			

In questo caso il valore 0 indica il minuto, 3 l’ora, mentre gli altri campi con * significano “qualsiasi valore”. Il comando verrà quindi eseguito ogni giorno alle tre di notte.

Se invece si desidera eseguire un comando ogni 30 minuti, si può utilizzare:

				
					*/30 * * * * comando
				
			

Il simbolo / indica un intervallo regolare, quindi cron eseguirà il comando ogni trenta minuti per tutte le ore del giorno.

Una volta salvata la configurazione, cron applicherà automaticamente le modifiche e inizierà a eseguire le attività programmate senza ulteriori interventi.

Esempi pratici di automazione su una VPS

Uno degli utilizzi più comuni di cron è automatizzare gli aggiornamenti del sistema. Su molte VPS può essere utile eseguire periodicamente un aggiornamento dei pacchetti per mantenere il server sicuro e aggiornato. 

Per aggiornare automaticamente il sistema ogni notte con cron:

				
					0 2 * * * apt update && apt -y upgrade
				
			

Questo tipo di operazione è particolarmente utile per server che devono rimanere operativi per lunghi periodi senza interventi manuali.

Un altro scenario frequente riguarda i backup automatici. Ad esempio, è possibile creare uno script che archivia una cartella importante e salvarlo nella propria home:

				
					#!/bin/bash
tar -czf /backup/site-$(date +%F).tar.gz /var/www/html
				
			

Dopo aver reso eseguibile lo script:

				
					chmod +x backup.sh
				
			

si può programmare il backup giornaliero con cron:

				
					30 3 * * * /home/user/backup.sh
				
			

In questo modo il backup verrà creato automaticamente ogni notte alle 03:30.

Cron può essere utile anche per attività di manutenzione più semplici, come la pulizia dei file temporanei. Alcuni servizi generano grandi quantità di file nella directory /tmp, che nel tempo possono occupare spazio inutile. Un job programmato può rimuovere periodicamente questi file:

				
					0 4 * * 0 find /tmp -type f -mtime +7 -delete
				
			

Questo comando elimina ogni settimana i file temporanei più vecchi di sette giorni.

Con pochi cron job configurati bene è quindi possibile automatizzare gran parte delle attività di manutenzione quotidiana di una VPS.

Errori comuni

Quando si utilizzano i cron job è importante ricordare alcune particolarità che spesso causano problemi agli utenti meno esperti.

Una delle più comuni riguarda il PATH di sistema. I comandi eseguiti tramite cron non sempre hanno accesso allo stesso ambiente della shell interattiva, quindi può essere necessario specificare il percorso completo dei programmi, ad esempio /usr/bin/php invece di semplicemente php.

Un altro errore frequente riguarda i permessi degli script. Se uno script non è eseguibile, cron non riuscirà ad avviarlo. In questi casi è sufficiente applicare il permesso corretto con:

				
					chmod +x script.sh
				
			

Può capitare anche di voler verificare se cron sta funzionando correttamente. In molte distribuzioni Linux è possibile controllare il servizio con:

				
					systemctl status cron
				
			

oppure, in alcune distribuzioni:

				
					systemctl status crond
				
			

Infine, quando si configurano operazioni automatiche è buona pratica testare prima il comando manualmente. In questo modo si può verificare che funzioni correttamente prima di affidarlo completamente all’automazione.

Leave a Comment

Share this Doc

Automatizzare manutenzioni e processi della VPS con cron

Or copy link

CONTENTS