Resolves: bz805783
kdumpctl: save_raw if found vmcore
mkdumprd: checking available size of raw disk
dracut module: do the dumping
Note, add a dir /kdumpscripts for monitor_dd_progress and future
kdump scripts
[v1->v2]: monitor_dd_process become a script instead of a function
add missed utils
use pipe with dc
[v2->v3]: Don: fix dd_progress_file typo
Vivek: move [ -f $conf_file ] earlier
don't split keyfile= and [ -f keyfile ]
move default core_collector earlier
move non-makedumpfile warnings to mkdumprd
make check available size a common function
Amerigo: use less pipe for grep then awk print
use shell (( )) instead of dc
use cut instead of awk
no need install dc and awk
make DD_BLKSIZE a variable
don't add 0755 file in git, chmod in module-setup.sh
[v3->v4]: vivek: kdumpctl multi raw target handling
monitor_dd_progress- fix wrong size calculation:
the tail -1 of dd pregress file is in bytes instead of blocks
only print the whole dd src file size for non-filtered case
check [ -b raw target device ] before dump
[v4->v5]: vivek: move check [ -b $1 ] before monitor_dd_progress
remove multi target function
[v5->v6]: vivek: only warning for raw dump of non-makedumpfile core_collector
[v6->v7]: kdumpctl should return 0 when there's no raw target
Signed-off-by: Dave Young <dyoung@redhat.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
27 lines
439 B
Bash
27 lines
439 B
Bash
#!/bin/sh
|
|
|
|
SRC_FILE_MB=$1
|
|
|
|
while true
|
|
do
|
|
DD_PID=`pidof dd`
|
|
if [ -n "$DD_PID" ]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
while true
|
|
do
|
|
sleep 5
|
|
if [ ! -d /proc/$DD_PID ]; then
|
|
break
|
|
fi
|
|
|
|
kill -s USR1 $DD_PID
|
|
CURRENT_SIZE=`tail -n 1 /tmp/dd_progress_file | sed "s/[^0-9].*//g"`
|
|
CURRENT_MB=$(($CURRENT_SIZE / 1048576))
|
|
echo -n -e "Copied $CURRENT_MB MB / $SRC_FILE_MB MB\r"
|
|
done
|
|
|
|
rm -f /tmp/dd_progress_file
|