Могу ли я узнать из системного журнала, была ли XFS полностью отключена при предыдущем завершении работы?

В исходной попытке вы можете поместить все команды в один конвейер, если воспользуетесь утилитой sponge :

cat Results.txt |
  tr -d " \t\r" |
  awk 'BEGIN { FS = "|" } ;
    { print $1"|"tolower($2) tolower($3) tolower($4)"|"$5 }' |
    sponge Results.txt

sponge сохранит свой stdin в памяти до тех пор, пока не достигнет конца ввода, а затем выполнит запись в файл. Это должно быть приемлемо для файла указанного размера.

Обратите внимание, что вы также можете использовать перенаправление оболочки для ввода файла в td вместо cat , например:

tr -d " \t\r" <Results.txt
0
12.01.2019, 14:00
1 ответ

Похоже, что прямого эквивалента не существует.

[27927.296390] XFS (sdb4): Mounting V5 Filesystem
[27927.869545] XFS (sdb4): Ending clean mount
[27942.761564] usb 2-2: USB disconnect, device number 31
[27943.011211] usb 2-2: new full-speed USB device number 32 using xhci_hcd
[27960.810143] XFS (sdb4): Unmounting Filesystem
[27960.811247] XFS (sdb4): metadata I/O error in "xlog_iodone" at daddr 0x58b10a len 64 error 5
[27960.812077] XFS (sdb4): xfs_do_force_shutdown(0x2) called from line 1271 of file fs/xfs/xfs_log.c.  Return address = 00000000758bdd7c
[27960.812708] XFS (sdb4): Log I/O Error Detected.  Shutting down filesystem
[27960.812728] XFS (sdb4): Unable to update superblock counters. Freespace may not be correct on next mount.
[27960.813349] XFS (sdb4): Please umount the filesystem and rectify the problem(s)

...

[28509.842965]  sdb: sdb1 sdb2 sdb3 sdb4
[28509.846156] sd 2:0:0:0: [sdb] Attached SCSI removable disk
[28517.755990] XFS (sdb4): Mounting V5 Filesystem
[28518.328431] XFS (sdb4): Ending clean mount

file -s /dev/sdb4может показать, когда файловая система ext4 «требует восстановления журнала», но не обнаруживает никакой разницы, когда я тестирую нечисто размонтированную файловую систему XFS.

xfs_repairтакже не показывает никакой разницы. Фактически, список общих сообщений вman xfs_repairне содержит ничего о воспроизведении журнала. Вместо этого:

The xfs_repair utility cannot repair an XFS file system with a dirty log. To clear the log, mount and unmount the XFS file system. If the log is corrupt and cannot be replayed, use the -L option ("force log zeroing") to clear the log, that is, xfs_repair -L /dev/device. Be aware that this may result in further corruption or data loss.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/xfsrepair

Хотя ext4 поддерживает специальные флаги для обозначения нечистого размонтирования, похоже, что XFS поддерживает только журнал. Если журнал пуст, то он "чистый"; там нечего чинить/восстанавливать/переигрывать.

(Если ваша ОС желает обнаруживать нечистые завершения работы, она должна сделать это сама, как это делает Windows :-).

0
28.01.2020, 04:03

Теги

Похожие вопросы