[PATCH] get_ssh_size fix for localized df output

Dave Young dyoung at redhat.com
Thu Mar 13 06:09:15 UTC 2014


When kdump service is started, /sbin/mkdump checks if there is enough
free space on the ssh server using "df -P" command.
However, the slight difference in the first line of the "df -P" command
output for English and Japanese environment causes a problem.
 -----
  # LANG=en_us.utf8 df -P | head -1
  Filesystem 1024-blocks Used Available Capacity Mount on
  # LANG=ja_JP.utf8 df -P | head -1
  ファイルシス   1024-ブロック    使用  使用可 容量 マウント位置
 -----
Because the number of words is 7 in the English output and 6 in
Japanese, the subsequent awk command could not correctly locate the
free space field and results in an error.

One way to fix it is use df -P /var/crash|tail -1, but for remote restricted
shell pipe is not supported. Thus fix this by print field NF-2 in awk script. 

Signed-off-by: Dave Young <dyoung at redhat.com>
---
 mkdumprd |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- kexec-tools.orig/mkdumprd
+++ kexec-tools/mkdumprd
@@ -142,8 +142,9 @@ get_ssh_size() {
     [ $? -ne 0 ] && {
         perror_exit "checking remote ssh server available size failed."
     }
-    #ssh output removed the line break, so print $11 instead of $4
-    _size=$(echo -n $_out|tail -1 | awk '{print $11}')
+
+    #ssh output removed the line break, so print field NF-2
+    _size=$(echo -n $_out| awk '{avail=NF-2; print $avail}')
     echo -n $_size
 }
 


More information about the kexec mailing list