# =========================================== # shell_command.yaml # =========================================== # SSH-based commands to control OpenWRT router # # Prerequisites: # 1. SSH key generated: /config/.ssh/openwrt_key # 2. Public key added to router: /root/.ssh/authorized_keys # 3. Scripts installed on router: /root/scripts/ # =========================================== # Device Blocking Commands # =========================================== # Block device - prevents internet access while allowing local network block_device: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 '/root/scripts/block_device.sh {{ mac }}' # Unblock device - restores internet access unblock_device: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 '/root/scripts/unblock_device.sh {{ mac }}' # Check if device is currently blocked check_block_status: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 '/root/scripts/check_block_status.sh {{ mac }}' # =========================================== # Bulk Operations # =========================================== # Block multiple devices block_multiple: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'for mac in $(echo "{{ macs }}" | tr "," " "); do /root/scripts/block_device.sh "$mac"; done' # Unblock multiple devices unblock_multiple: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'for mac in $(echo "{{ macs }}" | tr "," " "); do /root/scripts/unblock_device.sh "$mac"; done' # =========================================== # Bandwidth Query Commands # =========================================== get_device_bandwidth: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 '/root/scripts/get_bandwidth.sh {{ mac }}' # =========================================== # Device Presence Commands # =========================================== check_device_connected: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'cat /tmp/dhcp.leases | grep -i "{{ mac }}" | wc -l' get_device_ip: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'cat /tmp/dhcp.leases | grep -i "{{ mac }}" | awk "{print \$3}"' # =========================================== # WiFi Signal Strength # =========================================== get_wifi_signal: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'iw dev wlan0 station dump | grep -A 10 "{{ mac }}" | grep "signal:" | awk "{print \$2}"' # =========================================== # Router Management Commands # =========================================== restart_router: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'reboot' clear_all_blocks: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'iptables -F FORWARD' get_router_uptime: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'uptime' get_router_load: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'cat /proc/loadavg' # =========================================== # Diagnostic Commands # =========================================== list_firewall_rules: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'iptables -L FORWARD -n -v' list_dhcp_leases: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'cat /tmp/dhcp.leases' list_wifi_clients: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 'iw dev wlan0 station dump' check_nlbwmon_status: > ssh -i /config/.ssh/openwrt_key -o StrictHostKeyChecking=no root@10.0.0.254 '/etc/init.d/nlbwmon status'