Use an array to hold arguments to avoid quote problems
This commit is contained in:
parent
005c06fa9f
commit
2d16a847d4
29
mkdumprd
29
mkdumprd
@ -10,14 +10,22 @@ export IN_KDUMP=1
|
|||||||
|
|
||||||
conf_file="/etc/kdump.conf"
|
conf_file="/etc/kdump.conf"
|
||||||
extra_modules=""
|
extra_modules=""
|
||||||
dracut_args="-m kdumpbase --add dash --add fstab-sys -c /dev/null"
|
dracut_args=("-m" "kdumpbase" "--add" "dash" "--add" "fstab-sys" "-c" "/dev/null")
|
||||||
|
|
||||||
add_dracut_arg() {
|
add_dracut_arg() {
|
||||||
dracut_args="$dracut_args $*"
|
while [ $# -gt 0 ];
|
||||||
|
do
|
||||||
|
dracut_args+=("$1")
|
||||||
|
shift
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
add_dracut_module() {
|
add_dracut_module() {
|
||||||
add_dracut_arg "--add $1"
|
add_dracut_arg "--add" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_dracut_mount() {
|
||||||
|
add_dracut_arg "--mount" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@ -43,7 +51,7 @@ done
|
|||||||
# Generic substring function. If $2 is in $1, return 0.
|
# Generic substring function. If $2 is in $1, return 0.
|
||||||
strstr() { [[ $1 =~ $2 ]]; }
|
strstr() { [[ $1 =~ $2 ]]; }
|
||||||
|
|
||||||
to_udev_name() {
|
to_dev_name() {
|
||||||
local dev="$1"
|
local dev="$1"
|
||||||
|
|
||||||
case "$dev" in
|
case "$dev" in
|
||||||
@ -54,7 +62,12 @@ to_udev_name() {
|
|||||||
dev=`blkid -L "${dev#LABEL=}"`
|
dev=`blkid -L "${dev#LABEL=}"`
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo ${dev#/dev/}
|
echo $dev
|
||||||
|
}
|
||||||
|
|
||||||
|
to_mount() {
|
||||||
|
local _dev=$(to_dev_name $1)
|
||||||
|
echo "$(grep "$_dev" /proc/mounts | cut -d' ' -f1-4)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1 remote target
|
# $1 remote target
|
||||||
@ -70,7 +83,7 @@ if [ -n "$conf_file" ]; then
|
|||||||
extra_modules="$extra_modules $config_val"
|
extra_modules="$extra_modules $config_val"
|
||||||
;;
|
;;
|
||||||
ext[234]|xfs|btrfs|minix)
|
ext[234]|xfs|btrfs|minix)
|
||||||
add_dracut_arg "--mount $(to_udev_name $config_val)"
|
add_dracut_mount "$(to_mount $config_val)"
|
||||||
;;
|
;;
|
||||||
raw)
|
raw)
|
||||||
#TODO
|
#TODO
|
||||||
@ -82,7 +95,7 @@ if [ -n "$conf_file" ]; then
|
|||||||
add_dracut_module "scp"
|
add_dracut_module "scp"
|
||||||
else
|
else
|
||||||
add_dracut_module "nfs"
|
add_dracut_module "nfs"
|
||||||
add_dracut_arg "--mount $config_val"
|
add_dracut_mount "$(to_mount $config_val)"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
core_collector)
|
core_collector)
|
||||||
@ -106,6 +119,6 @@ then
|
|||||||
add_dracut_arg "--add-drivers $extra_modules"
|
add_dracut_arg "--add-drivers $extra_modules"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dracut $dracut_args -M "$@"
|
dracut "${dracut_args[@]}" -M "$@"
|
||||||
exit $?
|
exit $?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user