Ubuntu监控tar打包进程

最好把文件存在正在打包的目录附近, 代码中, 注意文件的真实路径.

将以下代码, 用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


白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论