From 058c4321a86df6fbfaf591fb99e4c25e2093e252 Mon Sep 17 00:00:00 2001 From: Tao Liu Date: Nov 09 2021 13:45:58 +0000 Subject: dracut-kdump.sh: simplify dump_ssh upstream: fedora resolves: bz2003832 conflict: none commit 7a9823b42e13cb9ff535009f28f89d197b14bbb0 Author: Kairui Song Date: Tue Aug 3 13:23:26 2021 +0800 dracut-kdump.sh: simplify dump_ssh There is a workaround for `scp` that it expects IPv6 address to be quoted with [ ... ], only apply the workaround once and store the updated `scp` address to reuse it. Signed-off-by: Kairui Song Acked-by: Philipp Rudo Signed-off-by: Tao Liu --- diff --git a/dracut-kdump.sh b/dracut-kdump.sh index 7cfa31b..b92854e 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -387,29 +387,25 @@ dump_ssh() local _dir="$KDUMP_PATH/$HOST_IP-$DATEDIR" local _host=$2 local _vmcore="vmcore" - local _ipv6_addr="" _username="" + + if is_ipv6_address "$_host"; then + _scp_address=${_host%@*}@"[${_host#*@}]" + else + _scp_address=$_host + fi dinfo "saving to $_host:$_dir" cat /var/lib/random-seed > /dev/urandom ssh -q $_opt $_host mkdir -p $_dir || return 1 - save_vmcore_dmesg_ssh ${DMESG_COLLECTOR} ${_dir} "${_opt}" $_host - save_opalcore_ssh ${_dir} "${_opt}" $_host - + save_vmcore_dmesg_ssh ${DMESG_COLLECTOR} ${_dir} "${_opt}" "$_host" dinfo "saving vmcore" - if is_ipv6_address "$_host"; then - _username=${_host%@*} - _ipv6_addr="[${_host#*@}]" - fi + save_opalcore_ssh ${_dir} "${_opt}" "$_host" "$_scp_address" if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then - if [ -n "$_username" ] && [ -n "$_ipv6_addr" ]; then - scp -q $_opt /proc/vmcore "$_username@$_ipv6_addr:$_dir/vmcore-incomplete" - else - scp -q $_opt /proc/vmcore "$_host:$_dir/vmcore-incomplete" - fi + scp -q $_opt /proc/vmcore "$_scp_address:$_dir/vmcore-incomplete" _exitcode=$? else $CORE_COLLECTOR /proc/vmcore | ssh $_opt $_host "umask 0077 && dd bs=512 of=$_dir/vmcore-incomplete" @@ -431,11 +427,7 @@ dump_ssh() dinfo "saving the $KDUMP_LOG_FILE to $_host:$_dir/" save_log - if [ -n "$_username" ] && [ -n "$_ipv6_addr" ]; then - scp -q $_opt $KDUMP_LOG_FILE "$_username@$_ipv6_addr:$_dir/" - else - scp -q $_opt $KDUMP_LOG_FILE "$_host:$_dir/" - fi + scp -q $_opt $KDUMP_LOG_FILE "$_scp_address:$_dir/" _ret=$? if [ $_ret -ne 0 ]; then derror "saving log file failed, _exitcode:$_ret" @@ -452,7 +444,7 @@ save_opalcore_ssh() { local _path=$1 local _opts="$2" local _location=$3 - local _user_name="" _ipv6addr="" + local _scp_address=$4 ddebug "_path=$_path _opts=$_opts _location=$_location" @@ -465,18 +457,9 @@ save_opalcore_ssh() { fi fi - if is_ipv6_address "$_host"; then - _user_name=${_location%@*} - _ipv6addr="[${_location#*@}]" - fi - dinfo "saving opalcore:$OPALCORE to $_location:$_path" - if [ -n "$_user_name" ] && [ -n "$_ipv6addr" ]; then - scp $_opts $OPALCORE $_user_name@$_ipv6addr:$_path/opalcore-incomplete - else - scp $_opts $OPALCORE $_location:$_path/opalcore-incomplete - fi + scp $_opts $OPALCORE $_scp_address:$_path/opalcore-incomplete if [ $? -ne 0 ]; then derror "saving opalcore failed" return 1