get_ssh_size fix for localized df output

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@redhat.com>
Acked-by: WANG Chao <chaowang@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
This commit is contained in:
Dave Young 2014-03-13 14:09:15 +08:00 committed by WANG Chao
parent 58a4543011
commit fc1749219f

View File

@ -142,8 +142,9 @@ get_ssh_size() {
[ $? -ne 0 ] && { [ $? -ne 0 ] && {
perror_exit "checking remote ssh server available size failed." 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 echo -n $_size
} }