Linux / Befehl sync: Gepufferte Schreibvorgänge auf den Datenträger übertragen

sync fordert den Kernel auf, die noch im Speicher befindlichen Datei- und Dateisystem-Schreibdaten auf das Speichergerät zu schreiben. Es kann verwendet werden, um auf den Abschluss der Schreibvorgänge zu warten, bevor ein Speichergerät unmittelbar nach dem Kopieren von Dateien getrennt wird.

Linux kann Schreibvorgänge aus Leistungsgründen in einem Puffer behalten. sync verwendet einen Systemaufruf, um diese auf den dauerhaften Speicher zu synchronisieren. Wenn es ohne Argumente ausgeführt wird, zielt es auf alle ausstehenden Schreibvorgänge im System ab, und in der GNU-Implementierung ermöglicht die Angabe einer Datei die Synchronisierung der Schreibvorgänge dieser speziellen Datei.

Grundlegende Syntax

sync [option] [file...]

Installierte Implementierungen und Optionen können je nach Distribution variieren. Überprüfen Sie die aktuelle Systembeschreibung mit man sync.

Beispiele

Ausstehende Schreibvorgänge synchronisieren

Fordert das System auf, aktuelle Schreibdaten auf das Speichergerät zu übertragen.

sync

Eine spezifische Datei synchronisieren

In der GNU-Implementierung synchronisiert es den Inhalt einer einzelnen Datei.

sync report.txt

Das Dateisystem synchronisieren, zu dem eine Datei gehört

Zielt auf ausstehende Schreibvorgänge des Dateisystems, zu dem der Dateipfad gehört.

sync -f /mnt/data/report.txt

Bedeutung, wenn keine Ausgabe erfolgt

Der sync-Befehl fordert den Kernel auf, alle ausstehenden Dateisystem-Schreibvorgänge an das Speichermedium zu senden. Bei Erfolg wird in der Regel nichts auf dem Bildschirm angezeigt.

sync
echo $?

Beispielausgabe:

0

0 ist der Shell-Beendungsstatus, der anzeigt, dass der zuletzt ausgeführte sync-Befehl erfolgreich war. Dies allein garantiert jedoch nicht, dass alle Hardware-Caches des Geräts dauerhaft gespeichert wurden oder dass Backups abgeschlossen sind. Beim Trennen einer externen Festplatte warten Sie, bis Schreibvorgänge abgeschlossen sind, und hängen Sie sie sicher mit umount aus.

Hauptoptionen und Format

Optionen/Format Beschreibung
Ohne Argumente Synchronisiert alle ausstehenden Schreibvorgänge im gesamten System.
file Synchronisiert die angegebene Datei in der GNU-Implementierung.
-d Synchronisiert die Daten der Datei und die für die Konsistenz erforderlichen Metadaten.
-f Synchronisiert das Dateisystem, zu dem die angegebene Datei gehört.

Vorsichtsmaßnahmen bei der Verwendung

Selbst wenn sync erfolgreich ist, sollten Sie das Dateisystem ordnungsgemäß mit umount aushängen, anstatt externe Speichergeräte sofort zu entfernen. Es sollte nicht als absolute Garantie für Daten interpretiert werden, einschließlich Hardware-Caches und Gerätefehler. Für sync -f entspricht es der vorgesehenen Verwendung, einen Dateipfad innerhalb des Dateisystems anstelle eines Blockgerät-Knotens anzugeben.

Häufig gestellte Fragen

Reicht es aus, nur sync auszuführen, bevor man ein USB-Laufwerk entfernt?

Nein. sync fordert die Synchronisierung ausstehender Schreibvorgänge an, hängt das Laufwerk jedoch nicht aus. Hängen Sie das Laufwerk nach Abschluss Ihrer Arbeit mit umount aus.

Offizielle Dokumentation

Sie können das genaue Verhalten der Optionen und Implementierungsunterschiede in der offiziellen Dokumentation zu sync nachsehen.