Zeitstempel von Dateien: Unterschied zwischen den Versionen
Robi (Diskussion | Beiträge) (Teil 1) |
Robi (Diskussion | Beiträge) (Teil 2) |
||
Zeile 8: | Zeile 8: | ||
Dort stehen jeweils 4 Zeitstempel, wovon jedoch einer für uns überhaupt nicht von Interesse ist, den benötigt Linux im Filesystem zum Verwalten der gelöschten Inode, er enthält die Zeit, zu der die Datei gelöscht worden ist, und somit die Inode für eine neue Verwendung frei geworden ist. | Dort stehen jeweils 4 Zeitstempel, wovon jedoch einer für uns überhaupt nicht von Interesse ist, den benötigt Linux im Filesystem zum Verwalten der gelöschten Inode, er enthält die Zeit, zu der die Datei gelöscht worden ist, und somit die Inode für eine neue Verwendung frei geworden ist. | ||
− | '''folgende Zeitstempel sind für | + | '''folgende Zeitstempel sind für den Anwender von Bedeutung''' |
==== Access Time (a-Time) ==== | ==== Access Time (a-Time) ==== | ||
− | diese Zeit wird jedes mal neu gesetzt wenn der Inhalt der Datei geöffnet worden ist. In ihm wird also der letzte Zugriff auf den Inhalt der Datei angezeigt. Dabei ist es für diesen Zeitstempel | + | diese Zeit wird jedes mal neu gesetzt, wenn der Inhalt der Datei geöffnet worden ist. In ihm wird also der letzte Zugriff auf den Inhalt der Datei angezeigt. Dabei ist es für diesen Zeitstempel von Bedeutung, ob die Datei vor einem schreiben erst gelesen wird oder nur an das Ende weitergeschrieben wird. Ansonsten ob die Datei gelesen oder ausgeführt wird oder ob eine Kopie von dieser Datei gemacht wird, oder die Datei durchsucht wird, oder die Datei nur in ein Backuparchiv aufgenommen wird, immer wird dieser Zeitstempel neu gesetzt. |
Durch die Auswertung dieses Zeitstempels könnten wir also zB. feststellen, das wir eine Datei schon einen längeren Zeitraum nicht mehr angefasst haben. Das kann unter Anderem dabei helfen alte temporäre User- oder Systemdateien zu löschen. | Durch die Auswertung dieses Zeitstempels könnten wir also zB. feststellen, das wir eine Datei schon einen längeren Zeitraum nicht mehr angefasst haben. Das kann unter Anderem dabei helfen alte temporäre User- oder Systemdateien zu löschen. | ||
Das ständige setzen der Access Time von Dateien und Verzeichnissen kann bei sehr vielen Zugriffen in einem Filesystem eine nicht unbedeutende Last verursachen, in bestimmten Situationen ist dieses aus Performancegründen nicht gewünscht, und kann deshalb zB mit Mountoptionen des Filesystems für alle Dateien oder alle Verzeichnisse abgeschalten werden. Einige Filesysteme erlauben auch ein gezieltes Abschalten dieser ständigen a-Time Aktualisierungen für ausgewählte Dateien oder Verzeichnisse. | Das ständige setzen der Access Time von Dateien und Verzeichnissen kann bei sehr vielen Zugriffen in einem Filesystem eine nicht unbedeutende Last verursachen, in bestimmten Situationen ist dieses aus Performancegründen nicht gewünscht, und kann deshalb zB mit Mountoptionen des Filesystems für alle Dateien oder alle Verzeichnisse abgeschalten werden. Einige Filesysteme erlauben auch ein gezieltes Abschalten dieser ständigen a-Time Aktualisierungen für ausgewählte Dateien oder Verzeichnisse. | ||
Zeile 23: | Zeile 23: | ||
==== Unterschiede bei Dateitypen ==== | ==== Unterschiede bei Dateitypen ==== | ||
− | Bei der Interpretation der Zeitstempeln müssen wir weiterhin unterscheiden, ob es sich um eine "normale" Datei oder um ein [[Directory|Verzeichnis]] handelt. Die Funktion der Zeitstempel ist bei allen Dateitypen prinzipiell gleich, allerdings durch den speziellen Aufbau und Funktion der | + | Bei der Interpretation der Zeitstempeln müssen wir weiterhin unterscheiden, ob es sich um eine "normale" Datei oder um ein [[Directory|Verzeichnis]] handelt. Die Funktion der Zeitstempel ist bei allen Dateitypen prinzipiell gleich, allerdings durch den speziellen Aufbau und Funktion der Verzeichnisdateien, ergibt sich hier eine etwas andere Betrachtungsweise. Softlinks und Geräteknoten zeigen prinzipielles ähnliches Verhalten wie normale Dateien, es gibt jedoch einige Besonderheiten zB bei Backups gibt es Unterschiede der veränderten Zeitstempel nach dem Restore gegenüber normalen Dateien, da diese Dateien bei einem Restore anders vom Backupprogramm angelegt werden müssen. |
+ | |||
+ | |||
+ | |||
+ | === Welche Zeit wird mit welcher Operation neu gesetzt === | ||
+ | Die folgende Tabelle zeigt einige häufige Befehle und ihre Auswirkungen auf die Zeitstempel von Verzeichnissen, normalen Dateien und Softlinks. Dabei entspricht: | ||
+ | * '''( X )''' dieser Zeitstempel wird neu gesetzt | ||
+ | * '''( . )''' dieses Zeitstempels bleibt unverändert | ||
+ | * '''( - )''' auf Softlinks wurden nicht alle Befehle getestet oder sind wirkungslos | ||
+ | |||
+ | |||
+ | {|style="height:50px" border="1" | ||
+ | |+ '''Änderung der Zeitstempel verschiedener Dateitypen bei Befehlen''' | ||
+ | |- | ||
+ | ! style="width:200px" | Befehl | ||
+ | ! style="width:200px" colspan="3" align="center"| aktuelles Directory | ||
+ | ! style="width:200px" colspan="3" align="center"| Datei | ||
+ | ! style="width:200px" colspan="3" align="center"| Sym. Link auf Datei | ||
+ | |-style="background:silver" align="center" | ||
+ | | | ||
+ | | a-Time || m-Time || c-Time || a-Time || m-Time || c-time || a-Time || m-Time || c-Time | ||
+ | |-align="center" | ||
+ | !align="left" | ls * | ||
+ | | X || .|| . || . || . || . || X || . || . | ||
+ | |-align="center" | ||
+ | !align="left" | cat * | ||
+ | | X || . || . || X || . || . || X || . || . | ||
+ | |-align="center" | ||
+ | !align="left" | find . | ||
+ | | X || . || . || X || . || . || X || . || . | ||
+ | |-align="center" | ||
+ | !align="left" | grep Begriff * | ||
+ | | X || . || . || X || . || . || X || . || . | ||
+ | |-align="center" | ||
+ | !align="left" | echo "neue Zeile" >> Datei | ||
+ | | . || . || . || . || X || X || - || - || - | ||
+ | |-align="center" | ||
+ | !align="left" | echo "neue Zeile" >> SymLink | ||
+ | | X || . || . || . || X || X || X || . || . | ||
+ | |-align="center" | ||
+ | !align="left" | mv Datei Datei_1 | ||
+ | | . || X || X || . || . || X || . || . || X | ||
+ | |-align="center" | ||
+ | !align="left" | ln Datei Datei_1 | ||
+ | | . || X || X || . || . || X || - || - || - | ||
+ | |-align="center" | ||
+ | !align="left" | chmod 777 Datei | ||
+ | | . || . || . || . || . || X || - || - || - | ||
+ | |-align="center" | ||
+ | !align="left" | chown user1 Datei | ||
+ | | . || . || . || . || . || X || . || . || X | ||
+ | |-align="center" | ||
+ | !align="left" | tar -cf ../Archiv.tar ./ | ||
+ | | X || . || . || X || . || . || X || . ||. | ||
+ | |-align="center" | ||
+ | !align="left" | tar -xf ../Archiv.tar | ||
+ | | X || . || X || X || . || X || X || X || X | ||
+ | |} | ||
+ | |||
− | |||
== Befehle rund um Zeitstempeln == | == Befehle rund um Zeitstempeln == |
Version vom 2. November 2006, 23:50 Uhr
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
--Robi 15:59, 29. Okt 2006 (CET)
dieser Beitrag wird im laufe dieser Woche entstehen, Besondere Wünsche zum Beitrag werden noch entgegengenommen ;-) Robi
Inhaltsverzeichnis
Zeitstempel von Dateien unter Linux
Welche Zeitstempel gibt es
Die Zeitstempel der Dateien sind in Linux in den Inode abgelegt. Dort stehen jeweils 4 Zeitstempel, wovon jedoch einer für uns überhaupt nicht von Interesse ist, den benötigt Linux im Filesystem zum Verwalten der gelöschten Inode, er enthält die Zeit, zu der die Datei gelöscht worden ist, und somit die Inode für eine neue Verwendung frei geworden ist.
folgende Zeitstempel sind für den Anwender von Bedeutung
Access Time (a-Time)
diese Zeit wird jedes mal neu gesetzt, wenn der Inhalt der Datei geöffnet worden ist. In ihm wird also der letzte Zugriff auf den Inhalt der Datei angezeigt. Dabei ist es für diesen Zeitstempel von Bedeutung, ob die Datei vor einem schreiben erst gelesen wird oder nur an das Ende weitergeschrieben wird. Ansonsten ob die Datei gelesen oder ausgeführt wird oder ob eine Kopie von dieser Datei gemacht wird, oder die Datei durchsucht wird, oder die Datei nur in ein Backuparchiv aufgenommen wird, immer wird dieser Zeitstempel neu gesetzt. Durch die Auswertung dieses Zeitstempels könnten wir also zB. feststellen, das wir eine Datei schon einen längeren Zeitraum nicht mehr angefasst haben. Das kann unter Anderem dabei helfen alte temporäre User- oder Systemdateien zu löschen. Das ständige setzen der Access Time von Dateien und Verzeichnissen kann bei sehr vielen Zugriffen in einem Filesystem eine nicht unbedeutende Last verursachen, in bestimmten Situationen ist dieses aus Performancegründen nicht gewünscht, und kann deshalb zB mit Mountoptionen des Filesystems für alle Dateien oder alle Verzeichnisse abgeschalten werden. Einige Filesysteme erlauben auch ein gezieltes Abschalten dieser ständigen a-Time Aktualisierungen für ausgewählte Dateien oder Verzeichnisse.
Modify Time (m-Time)
diese Zeit wird gesetzt, wenn der Inhalt der Datei verändert wird. In diesem Zeitstempel steht also die Zeit der letzten Veränderung der Dateidaten. Es ist der Zeitstempel der für uns die meiste Bedeutung hat. Können wir doch damit feststellen wie aktuell die Dateidaten sind. Diese Zeit wird zB. bei ls -l in der default Einstellung angezeigt.
Change Time (c-Time)
Fälschlicher Weise wird c-time oftmals mit Create Time übersetzt und somit herrscht über diesen Zeitstempel oftmals eine ganz falsche Vorstellung. Mit diesem Zeitstempel wird die Zeit gespeichert, zu welcher das letzte Mal die Daten innerhalb der Inode geändert worden sind. Wenn man sich anschaut, welche Daten in der Inode enthalten sind, kann man dann schon erahnen, wann diese Zeit neu gesetzt wird. Bei einem Ändern des Dateiinhaltes wird die Dateigröße und die Datenblöcke neu gesetzt, beim Ändern der Zugriffsrechte, der UserID oder GruppenID, beim Anlegen eines neuen Hardlinks immer wird auch der Inhalt der Inode geändert und damit auch die c-Time neu gesetzt. Aber auch bei einem Umbenennen der Datei, wird die c-time neu gesetzt, (man muss sich dabei vorstellen, das beim Umbenennen die Anzahl der "Links" zuerst um 1 erhöht wird, dann wenn der neue Namen angelegt wird, und dann anschließend der alte Namen gelöscht und die "Links" wieder um 1 verringert wird). Es gibt eine einzige Ausnahme bei der die c-Time nicht gesetzt wird, wenn durch das Auslesen der Datei nur die Access Time in der Inode neu gesetzt wird, also die Datei zB ausgelesen wird, dann wird die Change Time nicht neu gesetzt. Dieser Zeitstempel hat zB eine große Bedeutung fürs Backup, da damit nicht nur festgestellt werden kann, ob sich der Inhalt der Datei sondern zB. auch der Namen oder die Eigentums oder Zugriffsrechte einer Datei seit dem letzten Backup geändert haben. Während sich die anderen beiden Zeitstempel durch Befehle auf eine bestimmte Zeit manipulieren lassen, ist es nicht möglich die c-Time auf diese Art zu setzen.
Unterschiede bei Dateitypen
Bei der Interpretation der Zeitstempeln müssen wir weiterhin unterscheiden, ob es sich um eine "normale" Datei oder um ein Verzeichnis handelt. Die Funktion der Zeitstempel ist bei allen Dateitypen prinzipiell gleich, allerdings durch den speziellen Aufbau und Funktion der Verzeichnisdateien, ergibt sich hier eine etwas andere Betrachtungsweise. Softlinks und Geräteknoten zeigen prinzipielles ähnliches Verhalten wie normale Dateien, es gibt jedoch einige Besonderheiten zB bei Backups gibt es Unterschiede der veränderten Zeitstempel nach dem Restore gegenüber normalen Dateien, da diese Dateien bei einem Restore anders vom Backupprogramm angelegt werden müssen.
Welche Zeit wird mit welcher Operation neu gesetzt
Die folgende Tabelle zeigt einige häufige Befehle und ihre Auswirkungen auf die Zeitstempel von Verzeichnissen, normalen Dateien und Softlinks. Dabei entspricht:
- ( X ) dieser Zeitstempel wird neu gesetzt
- ( . ) dieses Zeitstempels bleibt unverändert
- ( - ) auf Softlinks wurden nicht alle Befehle getestet oder sind wirkungslos
Befehl | aktuelles Directory | Datei | Sym. Link auf Datei | ||||||
---|---|---|---|---|---|---|---|---|---|
a-Time | m-Time | c-Time | a-Time | m-Time | c-time | a-Time | m-Time | c-Time | |
ls * | X | . | . | . | . | . | X | . | . |
cat * | X | . | . | X | . | . | X | . | . |
find . | X | . | . | X | . | . | X | . | . |
grep Begriff * | X | . | . | X | . | . | X | . | . |
echo "neue Zeile" >> Datei | . | . | . | . | X | X | - | - | - |
echo "neue Zeile" >> SymLink | X | . | . | . | X | X | X | . | . |
mv Datei Datei_1 | . | X | X | . | . | X | . | . | X |
ln Datei Datei_1 | . | X | X | . | . | X | - | - | - |
chmod 777 Datei | . | . | . | . | . | X | - | - | - |
chown user1 Datei | . | . | . | . | . | X | . | . | X |
tar -cf ../Archiv.tar ./ | X | . | . | X | . | . | X | . | . |
tar -xf ../Archiv.tar | X | . | X | X | . | X | X | X | X |