上傳檔案到「/」

This commit is contained in:
2025-08-13 03:05:01 +00:00
parent 8cb67a3e38
commit fe30afdace

97
bandwidth_monitor.sh Normal file
View File

@@ -0,0 +1,97 @@
#!/bin/bash
# 找到主要網路介面(自動偵測)
INTERFACE=$(ip route | grep default | awk '{print $5}' | head -1)
if [ -z "$INTERFACE" ]; then
echo "找不到網路介面"
exit 1
fi
echo "監控網路介面: $INTERFACE"
echo "按 Enter 鍵停止並顯示最終統計"
echo "----------------------------------------"
# 取得初始值
RX_FILE="/sys/class/net/$INTERFACE/statistics/rx_bytes"
TX_FILE="/sys/class/net/$INTERFACE/statistics/tx_bytes"
START_RX=$(cat $RX_FILE)
START_TX=$(cat $TX_FILE)
START_TIME=$(date)
RX_PREV=$START_RX
TX_PREV=$START_TX
# 背景監控循環
{
while true; do
sleep 1
# 取得當前值
RX_CURR=$(cat $RX_FILE)
TX_CURR=$(cat $TX_FILE)
# 計算速度(每秒差值)
RX_SPEED=$((RX_CURR - RX_PREV))
TX_SPEED=$((TX_CURR - TX_PREV))
# 計算累積量
RX_TOTAL=$((RX_CURR - START_RX))
TX_TOTAL=$((TX_CURR - START_TX))
TOTAL_CUMULATIVE=$((RX_TOTAL + TX_TOTAL))
# 轉換成人類可讀格式
RX_SPEED_H=$(numfmt --to=iec --suffix=B/s $RX_SPEED)
TX_SPEED_H=$(numfmt --to=iec --suffix=B/s $TX_SPEED)
RX_TOTAL_H=$(numfmt --to=iec --suffix=B $RX_TOTAL)
TX_TOTAL_H=$(numfmt --to=iec --suffix=B $TX_TOTAL)
TOTAL_H=$(numfmt --to=iec --suffix=B $TOTAL_CUMULATIVE)
# 顯示即時資訊(使用 \r 覆蓋前一行)
printf "\r速度 - 下載: %-10s 上傳: %-10s | 累積 - 下載: %-10s 上傳: %-10s 總計: %-10s" \
"$RX_SPEED_H" "$TX_SPEED_H" "$RX_TOTAL_H" "$TX_TOTAL_H" "$TOTAL_H"
# 更新前一次的值
RX_PREV=$RX_CURR
TX_PREV=$TX_CURR
done
} &
# 記錄背景進程 PID
MONITOR_PID=$!
# 等待用戶按 Enter
read -r
# 停止背景監控
kill $MONITOR_PID 2>/dev/null
# 取得最終數據
END_RX=$(cat $RX_FILE)
END_TX=$(cat $TX_FILE)
END_TIME=$(date)
# 計算最終累積量
FINAL_RX=$((END_RX - START_RX))
FINAL_TX=$((END_TX - START_TX))
FINAL_TOTAL=$((FINAL_RX + FINAL_TX))
# 轉換格式
FINAL_RX_H=$(numfmt --to=iec --suffix=B $FINAL_RX)
FINAL_TX_H=$(numfmt --to=iec --suffix=B $FINAL_TX)
FINAL_TOTAL_H=$(numfmt --to=iec --suffix=B $FINAL_TOTAL)
# 顯示最終統計
echo ""
echo ""
echo "============ 最終統計 ============"
echo "監控時間:"
echo " 開始: $START_TIME"
echo " 結束: $END_TIME"
echo ""
echo "總累積頻寬使用量:"
echo " 下載: $FINAL_RX_H"
echo " 上傳: $FINAL_TX_H"
echo " 總計: $FINAL_TOTAL_H"
echo "================================="