IT
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Accedi Inizia gratis
S3

Come copiare una cartella del tuo server su S3 ogni notte con un solo comando (aws s3 sync)

Backup dei file del tuo sito su un bucket S3 senza programmi a pagamento: installare lo strumento di AWS sulla macchina, dargli una chiave con permessi solo per quel bucket, provare il comando e programmarlo ogni notte. Per chi non ha quasi mai usato il terminale.

⏱ 25 minuti ◎ Livello medio Aggiornata il 26/10/2026

Le istantanee della macchina sono il backup "grosso": tutto il disco, per quando qualcosa si rompe. Ma a volte vuoi qualcosa di più fine e più economico: una copia giornaliera di una cartella (i file caricati sul sito, i documenti, un dump del database) in un posto fuori dalla macchina, da cui poter recuperare un singolo file senza ripristinare nulla. Quello è S3, e lo strumento a riga di comando di AWS ha un comando, aws s3 sync, che copia solo ciò che è cambiato. Programmato ogni notte, è il backup di file più economico e affidabile che puoi avere.

Prima di iniziare: cosa significa ogni cosa

S3 e bucket
S3 è l'archivio di file di Amazon; un bucket è la "cartella radice" in cui li conservi, con un nome unico al mondo.
AWS CLI
Lo strumento a riga di comando di AWS: un programma che si installa sulla macchina e permette di dare ordini ad AWS scrivendo comandi.
sync (sincronizzare)
Confrontare una cartella con il bucket e copiare solo ciò che è nuovo o cambiato. La prima volta copia tutto; le successive, poco.
Chiave di accesso
Il nome utente e la password per i programmi. Qui la userà la macchina per parlare con S3; deve avere permesso solo su quel bucket.
Cron
Il pianificatore di attività di Linux: esegue un comando all'ora che gli indichi, ogni giorno.
Controllo delle versioni
Opzione di S3 che conserva le versioni precedenti di un file. Protegge dal rischio che un backup notturno sovrascriva qualcosa di buono con qualcosa di rotto.

Passo dopo passo

  1. Crea il bucket

    Console di S3, Crea bucket, nome unico (copias-miempresa-web), stessa regione della macchina (così il trasferimento tra i due non consuma quota né viene addebitato), blocca tutti gli accessi pubblici attivo, controllo delle versioni attivo e crittografia predefinita. Crea.

  2. Crea una chiave che possa scrivere solo in quel bucket

    In IAM, crea una policy con questo contenuto (cambia il nome del bucket) e un utente copias-web con quella policy e una chiave di accesso, come spiega la guida sull'utente IAM con permessi minimi:

    {
      "Version": "2012-10-17",
      "Statement": [
        { "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::copias-miempresa-web" },
        { "Effect": "Allow",
          "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
          "Resource": "arn:aws:s3:::copias-miempresa-web/*" }
      ]
    }

    Se un giorno quella chiave dovesse trapelare, l'unica cosa che qualcuno potrebbe fare è toccare quel bucket. Nient'altro.

  3. Installa lo strumento di AWS sulla macchina

    Via SSH, su Ubuntu o Debian:

    sudo apt update && sudo apt install -y awscli

    (Su Amazon Linux è già installato.) Configuralo con la chiave del passo precedente:

    aws configure

    Ti chiede l'identificativo della chiave, il segreto, la regione (eu-west-1, per esempio) e il formato di output (lascia json). Restano salvati nella cartella dell'utente, leggibili solo da lui.

  4. Prova il comando a mano

    aws s3 sync /var/www/html/uploads s3://copias-miempresa-web/uploads --delete

    La prima volta ci mette un po', perché carica tutto; vedrai passare ogni file. Le volte successive carica solo ciò che è cambiato. L'opzione --delete cancella nel bucket quello che non c'è più nella cartella, perché la copia sia uno specchio; con il controllo delle versioni attivo, ciò che è stato cancellato resta recuperabile. Verifica nella console di S3 che i file siano lì.

  5. Aggiungi il database, se ce l'hai

    Perché il backup contenga anche il database, prima esportalo in un file nella stessa cartella che viene sincronizzata, per esempio con un piccolo script /usr/local/bin/copia.sh:

    #!/bin/bash
    mysqldump -u usuario -pCONTRASEÑA nombre_bd | gzip > /var/copias/bd-$(date +%F).sql.gz
    find /var/copias -name "bd-*.sql.gz" -mtime +7 -delete
    aws s3 sync /var/copias s3://copias-miempresa-web/bd
    aws s3 sync /var/www/html/uploads s3://copias-miempresa-web/uploads --delete

    Dagli i permessi di esecuzione (chmod 700) e provalo con sudo /usr/local/bin/copia.sh. La riga di find cancella sulla macchina i dump più vecchi di una settimana; su S3 restano.

  6. Programmalo ogni notte

    sudo crontab -e

    Aggiungi in fondo una riga per le 3:30 di notte (ora della macchina, che di solito è UTC):

    30 3 * * * /usr/local/bin/copia.sh >> /var/log/copia.log 2>&1

    Salva. Il giorno dopo guarda /var/log/copia.log e la data dei file su S3. Metti inoltre una regola di ciclo di vita sul bucket che cancelli le versioni vecchie passati 30 o 90 giorni, perché non cresca all'infinito (guida in questa sezione).

Cosa può andare storto

"Access Denied" durante la sincronizzazione

La policy non copre quello che chiedi: verifica che il nome del bucket sia esatto nelle due righe Resource, e che la prima (ListBucket) non abbia /* e la seconda sì.

Il backup ci mette ore

Prima esecuzione con molti file piccoli: normale. Se ci mette tanto ogni notte, ci sono file che cambiano sempre (cache, log): escludili con --exclude "cache/*".

La password del database è nello script

Meglio metterla nel file ~/.my.cnf dell'utente root con permessi 600, e togliere -pCONTRASEÑA dal comando. E fai in modo che lo script possa leggerlo solo root.

Ho cancellato un file per sbaglio e il backup notturno lo ha cancellato anche lui

Il controllo delle versioni serve a questo: nella console di S3, attiva "Mostra versioni" nella cartella e recupera la versione precedente. Senza controllo delle versioni sarebbe andato perso: per questo si attiva al passo 1.

In Simplio

In Simplio avvii il backup notturno su S3 dal catalogo degli script: scegli la cartella della macchina e il bucket, e Simplio crea la chiave con permessi solo per quel bucket, installa il necessario e programma l'attività, senza aprire un terminale. Il bucket si vede in Simplio come una cartella, con le sue versioni, per recuperare un file con due clic. E se una notte il backup non compare, ti avvisa via email.

La stessa cosa, in AWS e in Simplio

Nella console di AWSIn Simplio
Impostare il backup notturnoBucket, policy IAM, chiave, installare la CLI, script, cron: 6 passi e un terminale, 25 minutiScript "Backup su S3" del catalogo: scegli la cartella e il bucket, Simplio crea la chiave limitata e programma l'attività
Sapere se stanotte è stato fattoGuardare il log sulla macchinaAvviso via email se un backup programmato non compare
Recuperare un fileConsole di S3, cercare, versioniAprire il bucket in Simplio come una cartella e scaricare

Provalo gratis per 15 giorni Vedi come funziona

Tutto questo, senza la console di AWS

Simplio è un pannello in italiano per gestire i tuoi account AWS: macchine, copie programmate, database, domini, e-mail e quanto ti addebita AWS, con permessi per persona e doppio fattore. Senza installare nulla sui tuoi server.

Inizia gratis per 15 giorni, senza carta

Sei già cliente? Area clienti.