আপনাকে শুরু করার জন্য কিছু (যদি আপনি নিজে এটি লিখতে চান তবে):
#!/bin/bash
#
# usage: bwmon PID
IN=0; OUT=0; TIME=0
get_traffic() {
t=`awk '/eth0:/ { printf("%s,%d,%d\n",strftime("%s"),$2,$10); }' < /proc/$1/net/dev`
IN=${t#*,}; IN=${IN%,*}
OUT=${t##*,};
TIME=${t%%,*};
}
get_traffic $1
while true
do
_IN=$IN; _OUT=$OUT; _TIME=$TIME
get_traffic $1
echo "$TIME,$(( $TIME - $_TIME )),$IN,$(( $IN - $_IN )),$OUT,$(( $OUT - $_OUT))"
sleep 1
done
মন্তব্য করেছেন:
- কেবলমাত্র এথ0 পরীক্ষা করে
- প্রতি 1 সেকেন্ডে চেক করে
- শুধুমাত্র লিনাক্সের অধীনে কাজ করে, তবে অন্যান্য ইউনিক্সগুলি একই রকম কাজ করে (প্রোফস বা যাই হোক না কেন)
- আউটপুট একটি sqlite.db সঙ্গে সংরক্ষণ করা যেতে পারে
stat --printf="%N\n" /proc/PID/exe | cut -d ' ' -f 3