參考 How to Monitor Your MySQL Database Restore Progress
方式一
# 當還原時
mysql crossdb < crossdb.sql
# 取得 pid (ps axu | grep crossdb)
pid="123456789"
while true; do
if [ -f /proc/${pid}/io ]; then
bytes_progress=$(cat /proc/${pid}/io | awk '/^rchar/ {print $2}')
bytes_total=$(cat /root/backup.sql | wc -c)
progress=$(awk "BEGIN {printf "%.2f", ((100 * $bytes_progress)/$bytes_total)}")
echo "Progress: $progress%"
sleep 5;
continue;
else
break;
fi
done
# 結果
Progress: 37.36% Progress: 39.91% Progress: 42.05% Progress: 44.56% Progress: 46.99%
方式二
# 這個簡單多了
yum install pv -y pv crossdb.sql | mysql crossdb
留言