DE
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Anmelden Kostenlos starten
S3

Einen Ordner Ihres Servers jede Nacht mit einem einzigen Befehl nach S3 kopieren (aws s3 sync)

Backups der Dateien Ihrer Website in einen S3-Bucket ohne kostenpflichtige Programme: das AWS-Werkzeug auf der Maschine installieren, ihm einen Schlüssel mit Berechtigungen nur für diesen Bucket geben, den Befehl testen und ihn jede Nacht einplanen. Für alle, die das Terminal fast nie benutzt haben.

⏱ 25 Minuten ◎ Mittelstufe Aktualisiert am 26/10/2026

Die Snapshots der Maschine sind das "große" Backup: die ganze Festplatte, für den Fall, dass etwas kaputtgeht. Aber manchmal wollen Sie etwas Feineres und Günstigeres: eine tägliche Kopie eines Ordners (die Uploads der Website, die Dokumente, ein Abzug der Datenbank) an einem Ort außerhalb der Maschine, von dem Sie eine einzelne Datei zurückholen können, ohne irgendetwas wiederherzustellen. Das ist S3, und das Kommandozeilenwerkzeug von AWS bringt einen Befehl mit, aws s3 sync, der nur kopiert, was sich geändert hat. Jede Nacht eingeplant, ist das das günstigste und zuverlässigste Datei-Backup, das Sie haben können.

Bevor Sie anfangen: was die Begriffe bedeuten

S3 und Bucket
S3 ist der Dateispeicher von Amazon; ein Bucket ist der "Wurzelordner", in dem Sie sie ablegen, mit weltweit eindeutigem Namen.
AWS CLI
Das Kommandozeilenwerkzeug von AWS: ein Programm, das auf der Maschine installiert wird und erlaubt, AWS per Befehl Anweisungen zu geben.
sync (synchronisieren)
Einen Ordner mit dem Bucket vergleichen und nur Neues oder Geändertes kopieren. Beim ersten Mal wird alles kopiert; danach wenig.
Zugriffsschlüssel
Benutzername und Passwort für Programme. Hier benutzt ihn die Maschine, um mit S3 zu sprechen; er darf nur Berechtigungen für diesen Bucket haben.
Cron
Der Aufgabenplaner von Linux: führt einen Befehl jeden Tag zur angegebenen Uhrzeit aus.
Versionsverwaltung
S3-Option, die frühere Versionen einer Datei aufbewahrt. Schützt davor, dass ein nächtliches Backup etwas Gutes mit etwas Kaputtem überschreibt.

Schritt für Schritt

  1. Legen Sie den Bucket an

    S3-Konsole, Bucket erstellen, eindeutiger Name (copias-miempresa-web), dieselbe Region wie die Maschine (so verbraucht die Übertragung zwischen beiden kein Kontingent und wird nicht berechnet), Jeglichen öffentlichen Zugriff blockieren aktiviert, Versionsverwaltung aktiviert und standardmäßige Verschlüsselung. Erstellen.

  2. Erstellen Sie einen Schlüssel, der nur in diesen Bucket schreiben darf

    Erstellen Sie in IAM eine Richtlinie mit diesem Inhalt (Bucket-Namen anpassen) und einen Benutzer copias-web mit dieser Richtlinie und einem Zugriffsschlüssel, wie in der Anleitung zum IAM-Benutzer mit minimalen Berechtigungen erklärt:

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

    Sollte dieser Schlüssel eines Tages durchsickern, könnte jemand damit nur diesen Bucket anfassen. Sonst nichts.

  3. Installieren Sie das AWS-Werkzeug auf der Maschine

    Per SSH, unter Ubuntu oder Debian:

    sudo apt update && sudo apt install -y awscli

    (Unter Amazon Linux ist es bereits installiert.) Konfigurieren Sie es mit dem Schlüssel aus dem vorherigen Schritt:

    aws configure

    Es fragt nach der Schlüssel-ID, dem Geheimnis, der Region (zum Beispiel eu-west-1) und dem Ausgabeformat (lassen Sie json). Die Werte werden im Ordner des Benutzers gespeichert, nur für ihn lesbar.

  4. Testen Sie den Befehl von Hand

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

    Beim ersten Mal dauert es, weil alles hochgeladen wird; Sie sehen jede Datei vorbeiziehen. Danach wird nur noch hochgeladen, was sich geändert hat. Die Option --delete löscht im Bucket, was im Ordner nicht mehr vorhanden ist, damit das Backup ein Spiegel ist; bei aktivierter Versionsverwaltung bleibt Gelöschtes wiederherstellbar. Prüfen Sie in der S3-Konsole, dass die Dateien da sind.

  5. Nehmen Sie die Datenbank dazu, falls Sie eine haben

    Damit das Backup auch die Datenbank enthält, schreiben Sie sie vorher in eine Datei im selben Ordner, der synchronisiert wird, zum Beispiel mit einem kleinen Skript /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

    Geben Sie ihm Ausführungsrechte (chmod 700) und testen Sie es mit sudo /usr/local/bin/copia.sh. Die Zeile mit find löscht auf der Maschine die Abzüge, die älter als eine Woche sind; in S3 bleiben sie erhalten.

  6. Planen Sie es jede Nacht ein

    sudo crontab -e

    Fügen Sie am Ende eine Zeile für 3:30 Uhr nachts hinzu (Uhrzeit der Maschine, meist UTC):

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

    Speichern. Sehen Sie am nächsten Tag in /var/log/copia.log und auf das Datum der Dateien in S3. Legen Sie außerdem eine Lebenszyklusregel im Bucket an, die alte Versionen nach 30 oder 90 Tagen löscht, damit er nicht endlos wächst (Anleitung in diesem Bereich).

Was schiefgehen kann

"Access Denied" beim Synchronisieren

Die Richtlinie deckt nicht ab, was Sie anfordern: Prüfen Sie, dass der Bucket-Name in beiden Resource-Zeilen exakt stimmt und dass die erste (ListBucket) kein /* hat und die zweite schon.

Das Backup dauert Stunden

Erster Lauf mit vielen kleinen Dateien: normal. Dauert es jede Nacht, gibt es Dateien, die sich ständig ändern (Caches, Protokolle): Schließen Sie sie mit --exclude "cache/*" aus.

Das Datenbankpasswort steht im Skript

Legen Sie es besser in der Datei ~/.my.cnf des Benutzers root mit Rechten 600 ab und entfernen Sie -pCONTRASEÑA aus dem Befehl. Und das Skript sollte nur root lesen können.

Ich habe versehentlich eine Datei gelöscht und das nächtliche Backup hat sie auch gelöscht

Dafür gibt es die Versionsverwaltung: Aktivieren Sie in der S3-Konsole "Versionen anzeigen" im Ordner und stellen Sie die frühere Version wieder her. Ohne Versionsverwaltung wäre sie verloren: Deshalb wird sie in Schritt 1 aktiviert.

In Simplio

In Simplio starten Sie das nächtliche Backup nach S3 aus dem Skript-Katalog: Sie wählen den Ordner der Maschine und den Bucket, und Simplio erstellt den Schlüssel mit Berechtigungen nur für diesen Bucket, installiert das Nötige und plant die Aufgabe, ohne ein Terminal zu öffnen. Der Bucket erscheint in Simplio wie ein Ordner, mit seinen Versionen, um eine Datei mit zwei Klicks wiederherzustellen. Und wenn das Backup eine Nacht ausbleibt, werden Sie per E-Mail benachrichtigt.

Dasselbe, in AWS und in Simplio

In der AWS-KonsoleIn Simplio
Das nächtliche Backup einrichtenBucket, IAM-Richtlinie, Schlüssel, CLI installieren, Skript, Cron: 6 Schritte und ein Terminal, 25 MinutenSkript "Backup nach S3" aus dem Katalog: Sie wählen Ordner und Bucket, Simplio erstellt den eingeschränkten Schlüssel und plant die Aufgabe
Wissen, ob es letzte Nacht gelaufen istDas Protokoll auf der Maschine ansehenE-Mail-Hinweis, wenn ein geplantes Backup ausbleibt
Eine Datei wiederherstellenS3-Konsole, suchen, VersionenDen Bucket in Simplio wie einen Ordner öffnen und herunterladen

15 Tage kostenlos testen So funktioniert es

All das, ohne die AWS-Konsole

Simplio ist ein Panel zur Verwaltung Ihrer AWS-Konten: Maschinen, geplante Kopien, Datenbanken, Domains, E-Mail und was AWS Ihnen berechnet, mit Berechtigungen pro Person und Zwei-Faktor-Authentifizierung. Ohne etwas auf Ihren Servern zu installieren.

15 Tage kostenlos starten, ohne Karte

Sind Sie bereits Kunde? Kundenzugang.