yes
This commit is contained in:
parent
36dbd6a75f
commit
c0bd3b1ab7
1
docker/start_gitea.sh
Executable file
1
docker/start_gitea.sh
Executable file
@ -0,0 +1 @@
|
||||
docker compose -f ~/App/gitea/docker-compose.yml up -d
|
3
isso/start_isso.sh
Executable file
3
isso/start_isso.sh
Executable file
@ -0,0 +1,3 @@
|
||||
source ~/App/isso/bin/activate
|
||||
isso -c ~/App/isso/isso.cfg
|
||||
|
3
update_node_nvm.sh
Executable file
3
update_node_nvm.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
nvm install node --reinstall-packages-from=$(nvm current)
|
142
wifi-stats.sh
Normal file
142
wifi-stats.sh
Normal file
@ -0,0 +1,142 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# exit if a command fails
|
||||
set -o errexit
|
||||
|
||||
# exit if required variables are not set
|
||||
set -o nounset
|
||||
|
||||
# check for dependencies
|
||||
script_commands="iw"
|
||||
missing_counter=0
|
||||
for needed_command in ${script_commands}; do
|
||||
if ! hash "${needed_command}" >/dev/null 2>&1; then
|
||||
printf "Command not found in PATH: %s\n" "${needed_command}" >&2
|
||||
((missing_counter++))
|
||||
fi
|
||||
done
|
||||
if ((missing_counter > 0)); then
|
||||
printf "Minimum %d commands are missing in PATH, aborting.\n" "${missing_counter}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# create function displaying usage
|
||||
usage() {
|
||||
echo -e "\nUsage: $0 <interface>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# make sure the correct number of arguments are passed; if not, output syntax and exit
|
||||
if [ "$#" -ne 1 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
# set interface variable
|
||||
interface="$1"
|
||||
|
||||
# download oui database, if not present
|
||||
oui_database="/tmp/oui.txt"
|
||||
if [ ! -f "${oui_database}" ]; then
|
||||
curl http://standards-oui.ieee.org/oui/oui.txt > "${oui_database}"
|
||||
fi
|
||||
|
||||
# find vendor from oui list
|
||||
find_vendor () {
|
||||
local vendor_id
|
||||
vendor_id="$(echo "$1" | cut -d":" -f1-3 | tr "[:lower:]" "[:upper:]" | sed 's_:_-_g')"
|
||||
local vendor_name
|
||||
vendor_name="$(grep -m1 "${vendor_id}" "${oui_database}" | awk '{$1=$2=""; print $0}' | xargs | tr -d '[:cntrl:]')"
|
||||
if [ ! -z "${vendor_name}" ]; then
|
||||
echo "${vendor_name}"
|
||||
else
|
||||
echo "Unknown"
|
||||
fi
|
||||
}
|
||||
|
||||
# parse out relevant information
|
||||
essid="$(iw dev "${interface}" link | grep "SSID" | awk '{$1=""; print substr($0,2)}')"
|
||||
bssid="$(iw dev "${interface}" link | grep "Connected" | awk '{print $3}')"
|
||||
ap_vendor="$(find_vendor "${bssid}")"
|
||||
rx_index="$(iw dev "${interface}" link | grep "rx bitrate" | awk '{print $5,$6}')"
|
||||
tx_index="$(iw dev "${interface}" link | grep "tx bitrate" | awk '{print $5,$6}')"
|
||||
rx_spacial_streams="$(iw dev "${interface}" link | grep "rx bitrate" | sed 's/short //g' | awk '{print $(NF-1),$NF}')"
|
||||
tx_spacial_streams="$(iw dev "${interface}" link | grep "tx bitrate" | sed 's/short //g' | awk '{print $(NF-1),$NF}')"
|
||||
client_mac="$(ip link | grep -A1 "${interface}" | grep -P "link/ether" | awk '{print $2}')"
|
||||
client_vendor="$(find_vendor "${client_mac}")"
|
||||
ip="$(ip -f inet addr show "${interface}" | grep -Po "inet \K[\d./,]+")"
|
||||
freq="$(iw dev "${interface}" link | grep "freq" | awk '{print $2}')"
|
||||
channel_width="$(iw dev "${interface}" link | grep "rx bitrate" | awk '{print $7}')"
|
||||
signal="$(iw dev "${interface}" link | grep "signal" | awk '{$1=""; print substr($0,2)}')"
|
||||
rx_phy_rate="$(iw dev "${interface}" link | grep "rx" | awk '{print $3}')"
|
||||
rx_units="$(iw dev "${interface}" link | grep "rx" | awk '{print $4}' | sed 's/Bit/bit/')"
|
||||
rx_mac_rate="$(echo "$(echo "${rx_phy_rate}" | cut -d " " -f1)*0.8" | bc)"
|
||||
tx_phy_rate="$(iw dev "${interface}" link | grep "tx" | awk '{print $3}')"
|
||||
tx_units="$(iw dev "${interface}" link | grep "tx" | awk '{print $4}' | sed 's/Bit/bit/')"
|
||||
tx_mac_rate="$(echo "$(echo "${tx_phy_rate}" | cut -d " " -f1)*0.8" | bc)"
|
||||
|
||||
# identify rx modulation
|
||||
if [ "${rx_index}" == "VHT-MCS 0" ]; then
|
||||
rx_modulation="BPSK"
|
||||
elif [ "${rx_index}" == "VHT-MCS 1" ]; then
|
||||
rx_modulation="QPSK"
|
||||
elif [ "${rx_index}" == "VHT-MCS 2" ]; then
|
||||
rx_modulation="PQSK"
|
||||
elif [ "${rx_index}" == "VHT-MCS 3" ]; then
|
||||
rx_modulation="16-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 4" ]; then
|
||||
rx_modulation="16-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 5" ]; then
|
||||
rx_modulation="16-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 6" ]; then
|
||||
rx_modulation="64-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 7" ]; then
|
||||
rx_modulation="64-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 8" ]; then
|
||||
rx_modulation="256-QAM"
|
||||
elif [ "${rx_index}" == "VHT-MCS 9" ]; then
|
||||
rx_modulation="256-QAM"
|
||||
else
|
||||
rx_modulation="n/a"
|
||||
fi
|
||||
|
||||
# identify tx modulation
|
||||
if [ "${tx_index}" == "VHT-MCS 0" ]; then
|
||||
tx_modulation="BPSK"
|
||||
elif [ "${tx_index}" == "VHT-MCS 1" ]; then
|
||||
tx_modulation="QPSK"
|
||||
elif [ "${tx_index}" == "VHT-MCS 2" ]; then
|
||||
tx_modulation="PQSK"
|
||||
elif [ "${tx_index}" == "VHT-MCS 3" ]; then
|
||||
tx_modulation="16-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 4" ]; then
|
||||
tx_modulation="16-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 5" ]; then
|
||||
tx_modulation="16-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 6" ]; then
|
||||
tx_modulation="64-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 7" ]; then
|
||||
tx_modulation="64-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 8" ]; then
|
||||
tx_modulation="256-QAM"
|
||||
elif [ "${tx_index}" == "VHT-MCS 9" ]; then
|
||||
tx_modulation="256-QAM"
|
||||
else
|
||||
tx_modulation="n/a"
|
||||
fi
|
||||
|
||||
# display formatted output
|
||||
echo
|
||||
echo " ESSID: ${essid}"
|
||||
echo " My IP: ${ip}"
|
||||
echo
|
||||
echo " AP MAC: ${bssid} (${ap_vendor})"
|
||||
echo " STA MAC: ${client_mac} (${client_vendor})"
|
||||
echo
|
||||
echo " Frequency: ${freq}MHz (${channel_width} channel)"
|
||||
echo " Signal: ${signal}"
|
||||
echo
|
||||
echo " PHY Rx: ${rx_phy_rate}${rx_units} / Tx: ${tx_phy_rate}${tx_units} (Physical link speed)"
|
||||
echo " MAC Rx: ${rx_mac_rate}${rx_units} / Tx: ${tx_mac_rate}${tx_units} (Best-case throughput)"
|
||||
echo
|
||||
echo " Modulation:"
|
||||
echo " Rx: ${rx_modulation} / Tx: ${tx_modulation}"
|
Loading…
Reference in New Issue
Block a user