FR
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Se connecter Commencez gratuitement
S3

Comment copier un dossier de votre serveur vers S3 chaque nuit avec une seule commande (aws s3 sync)

Sauvegardes des fichiers de votre site vers un bucket S3 sans logiciel payant : installer l'outil d'AWS sur la machine, lui donner une clé avec des permissions limitées à ce bucket, tester la commande et la programmer chaque nuit. Pour qui n'a presque jamais utilisé le terminal.

⏱ 25 minutes ◎ Niveau intermédiaire Mis à jour le 26/10/2026

Les instantanés de la machine sont la « grosse » sauvegarde : tout le disque, pour quand quelque chose casse. Mais parfois vous voulez quelque chose de plus fin et de moins cher : une copie quotidienne d'un dossier (les fichiers envoyés sur le site, les documents, un export de la base de données) dans un endroit hors de la machine, d'où vous pouvez récupérer un seul fichier sans rien restaurer. C'est S3, et l'outil en ligne de commande d'AWS fournit une commande, aws s3 sync, qui ne copie que ce qui a changé. Programmée chaque nuit, c'est la sauvegarde de fichiers la moins chère et la plus fiable que vous puissiez avoir.

Avant de commencer : ce que signifie chaque chose

S3 et bucket
S3 est l'entrepôt de fichiers d'Amazon ; un bucket est le « dossier racine » où vous les stockez, avec un nom unique dans le monde.
AWS CLI
L'outil en ligne de commande d'AWS : un programme qui s'installe sur la machine et permet de donner des ordres à AWS en tapant des commandes.
sync (synchroniser)
Comparer un dossier avec le bucket et ne copier que ce qui est nouveau ou modifié. La première fois, tout est copié ; les suivantes, peu de choses.
Clé d'accès
L'identifiant et le mot de passe pour les programmes. Ici, la machine l'utilisera pour parler à S3 ; elle ne doit avoir de permission que sur ce bucket.
Cron
Le planificateur de tâches de Linux : il exécute une commande à l'heure que vous lui indiquez, chaque jour.
Gestion des versions
Option de S3 qui conserve les versions précédentes d'un fichier. Elle protège contre une sauvegarde nocturne qui écraserait quelque chose de bon par quelque chose de cassé.

Pas à pas

  1. Créez le bucket

    Console S3, Créer un compartiment, nom unique (copias-miempresa-web), même région que la machine (ainsi le transfert entre les deux ne consomme pas de quota et n'est pas facturé), bloquer tous les accès publics activé, gestion des versions activée et chiffrement par défaut. Créez.

  2. Créez une clé qui ne peut écrire que dans ce bucket

    Dans IAM, créez une politique avec ce contenu (changez le nom du bucket) et un utilisateur copias-web avec cette politique et une clé d'accès, comme l'explique le guide sur l'utilisateur IAM avec des permissions minimales :

    {
      "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/*" }
      ]
    }

    Si cette clé fuyait un jour, la seule chose que quelqu'un pourrait faire serait de toucher à ce bucket. Rien d'autre.

  3. Installez l'outil d'AWS sur la machine

    En SSH, sur Ubuntu ou Debian :

    sudo apt update && sudo apt install -y awscli

    (Sur Amazon Linux, il est déjà installé.) Configurez-le avec la clé de l'étape précédente :

    aws configure

    Il vous demande l'identifiant de la clé, le secret, la région (eu-west-1, par exemple) et le format de sortie (laissez json). Ils sont enregistrés dans le dossier de l'utilisateur, lisibles par lui seul.

  4. Testez la commande à la main

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

    La première fois, c'est long, parce que tout est envoyé ; vous verrez chaque fichier défiler. Les fois suivantes, seul ce qui a changé est envoyé. L'option --delete supprime dans le bucket ce qui n'est plus dans le dossier, pour que la copie soit un miroir ; avec la gestion des versions activée, ce qui est supprimé reste récupérable. Vérifiez dans la console S3 que les fichiers sont bien là.

  5. Ajoutez la base de données si vous en avez une

    Pour que la sauvegarde contienne aussi la base de données, exportez-la d'abord dans un fichier du même dossier que celui qui est synchronisé, par exemple avec un petit 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

    Donnez-lui les droits d'exécution (chmod 700) et testez-le avec sudo /usr/local/bin/copia.sh. La ligne find supprime sur la machine les exports de plus d'une semaine ; dans S3, ils restent.

  6. Programmez-le chaque nuit

    sudo crontab -e

    Ajoutez à la fin une ligne pour 3 h 30 du matin (heure de la machine, qui est en général UTC) :

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

    Enregistrez. Le lendemain, regardez /var/log/copia.log et la date des fichiers dans S3. Mettez en plus une règle de cycle de vie sur le bucket qui supprime les anciennes versions après 30 ou 90 jours, pour qu'il ne grossisse pas sans fin (guide dans cette rubrique).

Ce qui peut mal tourner

« Access Denied » lors de la synchronisation

La politique ne couvre pas ce que vous demandez : vérifiez que le nom du bucket est exact sur les deux lignes Resource, et que la première (ListBucket) ne porte pas /* alors que la seconde oui.

La sauvegarde prend des heures

Première exécution avec beaucoup de petits fichiers : normal. Si chaque nuit c'est long, il y a des fichiers qui changent tout le temps (caches, journaux) : excluez-les avec --exclude "cache/*".

Le mot de passe de la base de données est dans le script

Mettez-le plutôt dans le fichier ~/.my.cnf de l'utilisateur root avec les droits 600, et retirez -pCONTRASEÑA de la commande. Et faites en sorte que seul root puisse lire le script.

J'ai supprimé un fichier par erreur et la sauvegarde nocturne l'a supprimé aussi

C'est à ça que sert la gestion des versions : dans la console S3, activez « Afficher les versions » dans le dossier et récupérez la version précédente. Sans gestion des versions, il aurait été perdu : c'est pour cela qu'on l'active à l'étape 1.

Dans Simplio

Dans Simplio, vous lancez la sauvegarde nocturne vers S3 depuis le catalogue de scripts : vous choisissez le dossier de la machine et le bucket, et Simplio crée la clé avec des permissions limitées à ce bucket, installe le nécessaire et programme la tâche, sans ouvrir de terminal. Le bucket se voit dans Simplio comme un dossier, avec ses versions, pour récupérer un fichier en deux clics. Et si une nuit la sauvegarde n'apparaît pas, vous êtes prévenu par e-mail.

La même chose, dans AWS et dans Simplio

Dans la console AWSDans Simplio
Mettre en place la sauvegarde nocturneBucket, politique IAM, clé, installer la CLI, script, cron : 6 étapes et un terminal, 25 minutesScript « Sauvegarde vers S3 » du catalogue : vous choisissez le dossier et le bucket, Simplio crée la clé limitée et programme la tâche
Savoir si elle a eu lieu cette nuitRegarder le journal sur la machineAlerte par e-mail si une sauvegarde programmée n'apparaît pas
Récupérer un fichierConsole S3, chercher, versionsOuvrir le bucket dans Simplio comme un dossier et télécharger

Essayer gratuitement 15 jours Voir comment ça marche

Tout cela, sans la console AWS

Simplio est un panneau en français pour gérer vos comptes AWS : machines, copies programmées, bases de données, domaines, e-mail et ce que vous facture AWS, avec des autorisations par personne et la double authentification. Sans rien installer sur vos serveurs.

Commencez gratuitement pendant 15 jours, sans carte

Déjà client ? Espace clients.