sync er et Unix -værktøj til opdatering af filsystemer og til synkronisering af data på disk med data i hukommelse [1] . Dette udfører synkroniseringssystemkaldet , som får alle bufferlagrede filmetadata og dataændringer til at blive skrevet til de underliggende filsystemer. Det sikrer, at det, der er gemt i hukommelsen, bliver skrevet til disken, hvilket forhindrer, at de data, der er gemt i cachen , går tabt, hvis operationen går ned.
Der er også et tilknyttet systemkald, int fsync(int fildes)der anmoder om, at alle data for en åben fildeskriptor ved navn fildes overføres til den lagerenhed, der er knyttet til filen beskrevet af fildes.
Synkroniseringsværktøjet får filsystemadministratoren til at tømme alle ændrede inoder og alle uskrevne systembuffere fra hovedhukommelsen til disken. Dette sikrer, at alle ændringer af filerne op til det planlagte tidspunkt gemmes. sync skriver først inoder til buffere og derefter buffere til disk [2]
På Linux sikrer synkronisering kun, at en liste over "beskidte" blokke er kompileret til at blive skrevet. Der vil gå noget tid, før de rent faktisk bliver optaget. Genstart- og stop- kommandoerne tager højde for dette ved at holde pause i et par sekunder efter at være blevet kaldt
Når du har udført synkroniseringskommandoen, skal du give tilstrækkelig tid til, at driverkøerne kan frigives, og alle data kan gemmes fuldstændigt på disken. Varigheden af denne pause afhænger af hastigheden på harddisken(e), antallet af buffere, der skal behandles, og systemets aktivitet i denne periode.
Synkroniseringsoperationen bruger en lille mængde CPU-ressourcer. Derudover har det følgende fordele [3] :
En tilbagevenden fra et systemkald synckaldet af et hjælpeprogram af samme navn kan forekomme, før skrivningen faktisk er fuldført. Siden version 1.3.30 har Linux dog ventet på slutningen af skrivningen, hvilket dog ikke garanterer integriteten af dataene: moderne diske har deres egne store caches. [2]
Unix-kommandoer | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|