最好把文件存在正在打包的目录附近, 代码中, 注意文件的真实路径.
将以下代码, 用vim工具, 保存为xxx.sh文件, 运行即可.
#!/bin/bash
TAR_FILE="full_backup.tar.gz" # 文件名
TOTAL_SIZE=1610612736000 # 1.5TB in bytes 大小
CHECK_INTERVAL=30 # 监控时间间隔
echo "开始监控tar打包进程..."
echo "目标文件: $TAR_FILE"
echo "预计大小: 1.5TB"
echo "监控间隔: ${CHECK_INTERVAL}秒"
echo "================================"
while true; do
# 检查文件是否存在
if [ -f "$TAR_FILE" ]; then
CURRENT_SIZE=$(stat -c %s "$TAR_FILE" 2>/dev/null || echo 0)
PROGRESS_PCT=$(( CURRENT_SIZE * 100 / TOTAL_SIZE ))
# 获取进程资源使用
TAR_PROCESS=$(ps aux | grep "tar.*$TAR_FILE" | grep -v grep)
echo "=== $(date) ==="
echo "当前文件大小: $(numfmt --to=iec $CURRENT_SIZE)"
echo "完成进度: ${PROGRESS_PCT}%"
if [ -n "$TAR_PROCESS" ]; then
echo "进程状态: 运行中"
echo "资源使用: $TAR_PROCESS" | awk '{print "CPU: "$3"%, MEM: "$4"%"}'
else
echo "进程状态: 未找到或已完成"
fi
echo "--------------------------------"
else
echo "输出文件尚未创建,等待中..."
fi
sleep $CHECK_INTERVAL
done本文为宁若水!原创文章,转载无需和我联系,但请注明来自[若水]博客 www.lalaya.net
