#!/bin/bash # Menu Function show_menu() { echo "-------------------------" echo " CatTools " echo "-------------------------" echo "1. Collect Debug Logs" echo "0. Exit" echo "-------------------------" echo -n "Please enter your choice: " } # Log Collection Function collect_logs() { if [ -f /www/logs.txt ]; then rm /www/logs.txt fi cat /etc/banner >> /www/logs.txt date >> /www/logs.txt echo "## RELEASE" >> /www/logs.txt echo "==========" >> /www/logs.txt cat /etc/catwrt_release >> /www/logs.txt echo "## Application" >> /www/logs.txt echo "==========" >> /www/logs.txt opkg list_installed >> /www/logs.txt echo "## SYSLOG" >> /www/logs.txt echo "==========" >> /www/logs.txt logread >> /www/logs.txt echo "## DMESG" >> /www/logs.txt echo "==========" >> /www/logs.txt dmesg >> /www/logs.txt echo "## Plugins" >> /www/logs.txt echo "==========" >> /www/logs.txt cat /tmp/openclash.log >> /www/logs.txt cat /tmp/log/ssrplus.log >> /www/logs.txt cat /tmp/log/passwall.log >> /www/logs.txt cat /tmp/log/passwall2.log >> /www/logs.txt echo "## Task" >> /www/logs.txt echo "==========" >> /www/logs.txt top -b -n 1 >> /www/logs.txt echo "## Network Configuration" >> /www/logs.txt echo "==========" >> /www/logs.txt ifconfig -a >> /www/logs.txt echo "## UCI Network" >> /www/logs.txt echo "==========" >> /www/logs.txt uci show network >> /www/logs.txt echo "## Firewall" >> /www/logs.txt echo "==========" >> /www/logs.txt iptables -L -v -n >> /www/logs.txt ip6tables -L -v -n >> /www/logs.txt echo "## Routing Table" >> /www/logs.txt echo "==========" >> /www/logs.txt ip route >> /www/logs.txt ip -6 route >> /www/logs.txt echo "## Memory Usage" >> /www/logs.txt echo "==========" >> /www/logs.txt free -h >> /www/logs.txt echo "## Disk Usage" >> /www/logs.txt echo "==========" >> /www/logs.txt df -h >> /www/logs.txt lan_ip=$(uci get network.lan.ipaddr) echo "日志已收集到 /www/logs.txt" echo "使用浏览器访问下载 http://$lan_ip/logs.txt" exit } while true; do show_menu read choice case $choice in 1) collect_logs ;; 0) echo "Exiting..." break ;; *) echo "Invalid choice, please try again" read -p "Press [Enter] key to continue..." ;; esac done echo "Done!"