TAR-Fehler – „wp-content: Datei wurde beim Lesen geändert“

TAR-Fehler – „wp-content: Datei wurde beim Lesen geändert“

Hintergrund

Ich habe einen Bash-Alias, den ich zum Sichern eines Wordpress-Home-Ordners verwende. Der Befehl wird ausgeführt von/home/waiheke26/sites/www.DOMAIN.co.nz/public

Der Befehl lautet:

tar --exclude='./wp-content/uploads' \
    --exclude='./wp-content/cache' \
    --exclude ='./cache' \
    --exclude='./wp-content/backups' \
    --exclude='./wp-snapshots' \
    --exclude='./wp-content/envato-backups' \
    -zcf \
    /home/waiheke26/sites/www.DOMAIN.co.nz/backups/wp-files-$(date +%Y-%m-%d-%H.%M.%S).tar.gz \
    . \ 
    && echo "File backup OK" || echo "File backup failed"';

Das Thema

Wenn ich den Befehl vor kurzem ausführe, erhalte ich die folgende Fehlermeldung:

tar: ./wp-content: file changed as we read it
File backup failed

Vieles, was ich online zu diesem file changed as we read itFehler gelesen habe, lässt darauf schließen, dass der Benutzer die Tar-Datei im zu archivierenden Verzeichnis erstellt. In meinem Fall trifft das nicht zu, da die Tar-Datei woanders erstellt wird.

Frage

Wie kann ich die Ursache dieses Fehlers ermitteln?

Antwort1

lsofIch verzichte also für einen Moment darauf, mich mit der Frage zu befassen, was den WP-Inhalt ändert, während Tar arbeitet, da Ihre Umgebung so sensibel ist … was ich, spekulativ betrachtet, während des Vorgangs vielleicht durcheinanderbringen könnte .

Wenn in Ihrer Umgebung genügend Platz vorhanden ist, können Sie eine „Offline“-Kopie Ihrer öffentlichen Dateien auf dem neuesten Stand halten, indem Sie Folgendes verwenden:

rsync -va /home/asdf/public/ /home/asdf/backups/public/ --delete

Es wird nach dem ersten Kopieren schnell ausgeführt, da nur Unterschiede kopiert werden. Sie können hier Optionen hinzufügen, --excludeum sich das Kopieren von Dateien zu ersparen, die Sie ohnehin aus dem Archiv ausschließen.

Erstellen Sie dann Ihr Tar-Archiv wie zuvor, mit Backups/Public als Quelle:

tar --exclude='./whatever' \
    -zcf \
    /home/asdf/backups/wp-files-$(date +%Y-%m-%d-%H.%M.%S).tar.gz \
    /home/asdf/backups/public \ 
    && echo "File backup OK" || echo "File backup failed"';

Dadurch wird effektiv tareine Umgebung geschaffen, in der sich während der Ausführung nichts ändert, wie andere bereits vorgeschlagen haben.

verwandte Informationen