From 3be6c1228e822fca98a72dac4e51893d164244e4 Mon Sep 17 00:00:00 2001 From: Baoquan He Date: Thu, 13 Dec 2012 13:47:56 +0800 Subject: [PATCH] change the dump dir format to be more readable Resolves: bz880551 Currently on fedora directory name of kdump is like 14.11.12-03:40:30. It's not as readable as RHEL6. The old format of dir is host_ip-date-time. This patch changes it back like ole one as below. 192.168.122.234-2012-10-31-05:17:20 If can't get HOST_IP for a network kudmp, we just fail. Becasue most likely any attempt to save dump will also fail. Signed-off-by: Baoquan He Acked-by: Dave Young --- dracut-kdump.sh | 32 +++++++++++++++++++++++++++++++- dracut-module-setup.sh | 2 ++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 2ae746e..2a7e956 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -7,7 +7,8 @@ KDUMP_PATH="/var/crash" CORE_COLLECTOR="" DEFAULT_CORE_COLLECTOR="makedumpfile -c --message-level 1 -d 31" DEFAULT_ACTION="dump_rootfs" -DATEDIR=`date +%d.%m.%y-%T` +DATEDIR=`date +%Y.%m.%d-%T` +HOST_IP='127.0.0.1' DUMP_INSTRUCTION="" SSH_KEY_LOCATION="/root/.ssh/kdump_id_rsa" KDUMP_SCRIPT_DIR="/kdumpscripts" @@ -119,11 +120,31 @@ is_ssh_dump_target() grep -q "^ssh[[:blank:]].*@" $conf_file } +is_nfs_dump_target() +{ + grep -q "^nfs.*:" $conf_file +} + is_raw_dump_target() { grep -q "^raw" $conf_file } +get_host_ip() +{ + if is_nfs_dump_target || is_ssh_dump_target + then + kdumpnic=$(getarg kdumpnic=) + [ -z "$kdumpnic" ] && echo "failed to get kdumpnic!" && return 1 + HOST_IP=`ip addr show dev $kdumpnic|grep 'inet '` + [ $? -ne 0 ] && echo "Wrong kdumpnic: $kdumpnic" && return 1 + HOST_IP="${HOST_IP##*inet }" + HOST_IP="${HOST_IP%%/*}" + [ -z "$HOST_IP" ] && echo "Wrong kdumpnic: $kdumpnic" && return 1 + fi + return 0 +} + read_kdump_conf() { if [ ! -f "$conf_file" ]; then @@ -198,10 +219,19 @@ if [ -z "$CORE_COLLECTOR" ];then fi fi +get_host_ip +if [ $? -ne 0 ]; then + echo "get_host_ip exited with non-zero status!" + do_default_action +fi + if [ -z "$DUMP_INSTRUCTION" ]; then add_dump_code "dump_rootfs" fi +#refresh DATEDIR with crash host ip addr +DATEDIR="$HOST_IP-$DATEDIR" + do_kdump_pre if [ $? -ne 0 ]; then echo "kdump_pre script exited with non-zero status!" diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 79b3766..9741c84 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -188,6 +188,8 @@ kdump_install_net() { fi kdump_setup_netdev "${_netdev}" + #save netdev used for kdump as cmdline + echo "kdumpnic=${_netdev}" > ${initdir}/etc/cmdline.d/kdumpnic.conf } #install kdump.conf and what user specifies in kdump.conf