Hallo,
ich prüfe mit fsck auf Fehler. Geprüft werden Dateien, auf denen ein ext4-Filesystem ist und die per iSCSI exportiert werden sollen.
Das Ganze passiert in zwei Schritten:
Der erste Prozess prüft nur und schiebt fehlerhafte Dateien in einen separaten Ordner
Der zweite Prozess repariert die fehlerhaften Dateien
2. Funktioniert top. Der exit-code von 1. ist aber immer 0 , auch wenn ein Fehler vorliegt.
Die Manpage sagt:
The exit code returned by e2fsck is the sum of the following conditions: 0 - No errors 1 - File system errors corrected 2 - File system errors corrected, system should be rebooted 4 - File system errors left uncorrected 8 - Operational error 16 - Usage or syntax error 32 - E2fsck canceled by user request 128 - Shared library error
root@drei:/storage# e2fsck -n damaged e2fsck 1.44.1 (24-Mar-2018) Warning: skipping journal recovery because doing a read-only filesystem check. damaged contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong (486904, counted=486903). Fix? no Free inodes count wrong (129896, counted=129895). Fix? no damaged: 1176/131072 files (0.0% non-contiguous), 37384/524288 blocks root@drei:/storage# echo $? 0 root@drei:/storage# e2fsck -p damaged damaged: recovering journal damaged contains a file system with errors, check forced. damaged: 1177/131072 files (0.0% non-contiguous), 37385/524288 blocks root@drei:/storage# echo $? 1
Weiß jemand, was da los ist? Ich kann jetzt natürlich anfangen zu greppen und so Späße, hätte das aber doch gerne "sauber" über den exit code geregelt. Hat jemand eine Idee?
Danke schon mal,
Gruß BillMaier
//edit: Meine Vermutung ist, dass bei -n
das journal nicht nur nicht repariert, sondern auch gar nicht geprüft wird - dann ergäbe das ganze einigermaßen Sinn. Eine Lösung hätte ich dann aber trotzdem nicht...