Hi,
ich moechte auslesen wie lange es dauert bis eine Partition wieder ge-fsck(ed) wird. Auf die Werte komme ich mit: sudo tune2fs -l /dev/sdxx
[...] Mount count: 15 Maximum mount count: 33 [...]
Und genau diese beiden Zahlen haette ich auch gerne. Nun will ich aber kein tune2fs absetzen und die Ausgabe zerhacken. Daher meine Frage, stehen diese Werte in irgendeiner Datei? Wenn ja, in welcher? Wenn nein, woher nimmt tune2fs diese?
Ich habe auch schon mal strace darauf angesetzt aber ohne Erfolg. ein:
$ sudo strace -f tune2fs -l /dev/sda2 2>&1 | grep open
bringt:
open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libext2fs.so.2", O_RDONLY) = 3 open("/lib/libcom_err.so.2", O_RDONLY) = 3 open("/lib/libblkid.so.1", O_RDONLY) = 3 open("/lib/libuuid.so.1", O_RDONLY) = 3 open("/lib/libe2p.so.2", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/lib/libpthread.so.0", O_RDONLY) = 3 open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 open("/etc/blkid.conf", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/blkid.tab", O_RDONLY) = -1 ENOENT (No such file or directory) open("/dev/sda2", O_RDONLY) = 3 open("/proc/swaps", O_RDONLY) = 4 open("/proc/mounts", O_RDONLY) = 4 open("/.ismount-test-file", O_RDWR|O_CREAT, 0600) = 5 open("/dev/sda2", O_RDONLY|O_EXCL) = -1 EBUSY (Device or resource busy) open("/etc/localtime", O_RDONLY) = 4 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 4 open("/etc/nsswitch.conf", O_RDONLY) = 4 open("/etc/ld.so.cache", O_RDONLY) = 4 open("/lib/libnss_compat.so.2", O_RDONLY) = 4 open("/lib/libnsl.so.1", O_RDONLY) = 4 open("/etc/ld.so.cache", O_RDONLY) = 4 open("/lib/libnss_nis.so.2", O_RDONLY) = 4 open("/lib/libnss_files.so.2", O_RDONLY) = 4 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 4 open("/etc/group", O_RDONLY|O_CLOEXEC) = 4
davon sind das meiste shared libs und in den anderen finde ich nichts. OS ist Debian, versteht sich.
Bin fuer jede Hilfe dankbar.
Gruesse Basti
Am Wed, 7 Nov 2012 16:28:28 +0100 schrieb Sebastian Oeste oeste.sebastian@googlemail.com:
Daher meine Frage, stehen diese Werte in irgendeiner Datei? Wenn ja, in welcher? Wenn nein, woher nimmt tune2fs diese?
Stehen im Superblock der Partition. [1]
open("/dev/sda2", O_RDONLY) = 3 dürfte also der relevante Ansatz sein, wenn du das unbedingt per Hand nachbauen willst.
Hallo,
Sebastian Oeste oeste.sebastian@googlemail.com (Mi 07 Nov 2012 16:28:28 CET):
Hi,
ich moechte auslesen wie lange es dauert bis eine Partition wieder ge-fsck(ed) wird. Auf die Werte komme ich mit: sudo tune2fs -l /dev/sdxx
[...] Mount count: 15 Maximum mount count: 33 [...]
Und genau diese beiden Zahlen haette ich auch gerne. Nun will ich aber kein tune2fs absetzen und die Ausgabe zerhacken. Daher meine Frage, stehen diese Werte in irgendeiner Datei? Wenn ja, in welcher? Wenn nein, woher nimmt tune2fs diese?
Das wird auf dem jeweiligen Gerät stehen. Im Superblock oder noch woanders. Du wirst um tune2fs oder dessen Source-Code nicht herum kommen. Vielleicht in der libext2fs… Ich denke, es wird dazu keinen syscall geben, und wohl auch kein ioctl.
Ok,
Danke euch erstmal, hatte zwar gehofft das es unter /proc vllt. eine Datei gibt die man einfach auslesen kann. Aber so muss ich gucken ob ich selber die Informationen extrahiere oder ob ich doch die Ausgabe von tune2fs lese.
Am Mittwoch, 7. November 2012, 17:06:05 schrieb Sebastian Oeste:
Ok,
Danke euch erstmal, hatte zwar gehofft das es unter /proc vllt. eine Datei gibt die man einfach auslesen kann. Aber so muss ich gucken ob ich selber die Informationen extrahiere oder ob ich doch die Ausgabe von tune2fs lese.
Heiko hat recht, ohne Source ist da nichts zu machen. /proc und /sys fällt IMHO auch aus.
Veruschs mal wie demonstiert: root@bs8:~# dumpe2fs -h /dev/sda5 2>/dev/null | sed -ne 's/^(Maximum mount count:\s*)//p' 31
(Ein wenig sed-Syntax schadet nie zu wissen :-) )
Bernhard
Hi Sebastian,
Am Mittwoch, 7. November 2012, 17:06:05 schrieb Sebastian Oeste:
Ok,
Danke euch erstmal, hatte zwar gehofft das es unter /proc vllt. eine Datei gibt die man einfach auslesen kann. Aber so muss ich gucken ob ich selber die Informationen extrahiere oder ob ich doch die Ausgabe von tune2fs lese.
wie schon erwähnt, wirst du entweder um das parsen von tune2fs oder dumpe2fs oder ein kleines C-Programm nicht herum kommen, da diese Daten im Superblock des Filesystems stehen.
Ein Beispiel zum C-Programm gäbe es z.B. hier: http://stackoverflow.com/questions/6034751/reading-ext2-superblock-into-ext2...
Aus der Datenstruktur des Superblocks (ext2_super_block) bekommst du dann deine benötigten Informationen (s_mnt_count und s_max_mnt_count).
Eine Dokumentation zur Datenstruktur findest du z.B. hier: http://www.nongnu.org/ext2-doc/ext2.html
MfG Maddin
Am Mittwoch, 7. November 2012, 22:18:06 schrieb Maddin:
Hi Sebastian,
Am Mittwoch, 7. November 2012, 17:06:05 schrieb Sebastian Oeste:
Ok,
Danke euch erstmal, hatte zwar gehofft das es unter /proc vllt. eine Datei gibt die man einfach auslesen kann. Aber so muss ich gucken ob ich selber die Informationen extrahiere oder ob ich doch die Ausgabe von tune2fs lese.
wie schon erwähnt, wirst du entweder um das parsen von tune2fs oder dumpe2fs oder ein kleines C-Programm nicht herum kommen, da diese Daten im Superblock des Filesystems stehen.
Ein Beispiel zum C-Programm gäbe es z.B. hier: http://stackoverflow.com/questions/6034751/reading-ext2-superblock-into- ext2-super-block-struct-questions
Aus der Datenstruktur des Superblocks (ext2_super_block) bekommst du dann deine benötigten Informationen (s_mnt_count und s_max_mnt_count).
Eine Dokumentation zur Datenstruktur findest du z.B. hier: http://www.nongnu.org/ext2-doc/ext2.html
MfG Maddin
Danke Maddin für die Info: nett zu sehen. Damit klappt bernd@bs8:~$ od -An --skip-bytes=1078 --read-bytes=2 --format=u2 /dev/sda5 oder bernd@bs8:~$ echo `od ....` wenn die ersten Leerzeichen stören sollten.
Bernhard
lug-dd@mailman.schlittermann.de