255 lines
7.9 KiB
Bash
Executable File
255 lines
7.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
redundancy_mode=`uci get misc.log.redundancy_mode`
|
|
|
|
LOG_TMP_FILE_PATH="/tmp/xiaoqiang.log"
|
|
LOG_ZIP_FILE_PATH="/tmp/log.tar.gz"
|
|
|
|
WIRELESS_FILE_PATH="/etc/config/wireless"
|
|
WIRELESS_STRIP='/tmp/wireless.conf'
|
|
NETWORK_FILE_PATH="/etc/config/network"
|
|
NETWORK_STRIP="/tmp/network.conf"
|
|
MACFILTER_FILE_PATH="/etc/config/macfilter"
|
|
CRONTAB="/etc/crontabs/root"
|
|
|
|
LOG_DIR="/data/usr/log/"
|
|
LOGREAD_FILE_PATH="/data/usr/log/messages"
|
|
LOGREAD0_FILE_PATH="/data/usr/log/messages.0"
|
|
LOG_WIFI_AYALYSIS="/data/usr/log/wifi_analysis.log"
|
|
LOG_WIFI_AYALYSIS0="/data/usr/log/wifi_analysis.log.0.gz"
|
|
PANIC_FILE_PATH="/data/usr/log/panic.message"
|
|
TMP_LOG_FILE_PATH="/tmp/messages"
|
|
TMP_WIFI_LOG_ANALYSIS="/tmp/wifi_analysis.log"
|
|
TMP_WIFI_LOG="/tmp/wifi.log"
|
|
DHCP_LEASE="/tmp/dhcp.leases"
|
|
IPTABLES_SAVE="/tmp/iptables_save.log"
|
|
TRAFFICD_LOG="/tmp/trafficd.log"
|
|
PLUGIN_LOG="/tmp/plugin.log"
|
|
LOG_MEMINFO="/proc/meminfo"
|
|
LOG_SLABINFO="/proc/slabinfo"
|
|
DNSMASQ_CONF="/var/etc/dnsmasq.conf"
|
|
QOS_CONF="/etc/config/miqos"
|
|
WIFISHARE_CONF="/etc/config/wifishare"
|
|
MICLOUD_LOG="/tmp/micloudBackup.log"
|
|
GZ_LOGS=""
|
|
|
|
hardware=`uci get /usr/share/xiaoqiang/xiaoqiang_version.version.HARDWARE`
|
|
|
|
# $1 plugin install path
|
|
# $2 output file path
|
|
list_plugin(){
|
|
for file in `ls $1 | grep [^a-zA-Z]\.manifest$`
|
|
do
|
|
if [ -f $1/$file ];then
|
|
status=$(grep -n "^status " $1/$file | cut -d'=' -f2 | cut -d'"' -f2)
|
|
plugin_id=$(grep "name" $1/$file | cut -d'=' -f2 | cut -d'"' -f2)
|
|
if [ "$status"x = "5"x ]; then
|
|
echo "$plugin_id" >> $2 # eanbled
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
rm -f $LOG_TMP_FILE_PATH
|
|
|
|
cat $TMP_LOG_FILE_PATH >> $LOGREAD_FILE_PATH
|
|
> $TMP_LOG_FILE_PATH
|
|
|
|
cat $TMP_WIFI_LOG_ANALYSIS >> $LOG_WIFI_AYALYSIS
|
|
> $TMP_WIFI_LOG_ANALYSIS
|
|
|
|
echo "==========SN" >> $LOG_TMP_FILE_PATH
|
|
nvram get SN >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========uptime" >> $LOG_TMP_FILE_PATH
|
|
uptime >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========df -h" >> $LOG_TMP_FILE_PATH
|
|
df -h >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========bootinfo" >> $LOG_TMP_FILE_PATH
|
|
bootinfo >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========tmp dir" >> $LOG_TMP_FILE_PATH
|
|
ls -lh /tmp/ >> $LOG_TMP_FILE_PATH
|
|
du -sh /tmp/* >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========iwpriv wl0" >> $LOG_TMP_FILE_PATH
|
|
iwpriv wl0 e2p >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========iwpriv wl1" >> $LOG_TMP_FILE_PATH
|
|
iwpriv wl1 e2p >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========ifconfig" >> $LOG_TMP_FILE_PATH
|
|
ifconfig >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========/proc/net/dev" >> $LOG_TMP_FILE_PATH
|
|
cat /proc/net/dev >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========/proc/bus/pci/devices" >> $LOG_TMP_FILE_PATH
|
|
cat /proc/bus/pci/devices >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========route" >> $LOG_TMP_FILE_PATH
|
|
route -n >> $LOG_TMP_FILE_PATH
|
|
|
|
cat $NETWORK_FILE_PATH | grep -v -e'password' -e'username' > $NETWORK_STRIP
|
|
|
|
cat $WIRELESS_FILE_PATH | grep -v 'key' > $WIRELESS_STRIP
|
|
|
|
echo "==========ps" >> $LOG_TMP_FILE_PATH
|
|
ps -w >> $LOG_TMP_FILE_PATH
|
|
|
|
|
|
log_exec()
|
|
{
|
|
echo "========== $1" >>$LOG_TMP_FILE_PATH
|
|
eval "$1" >> $LOG_TMP_FILE_PATH
|
|
}
|
|
|
|
list_messages_gz(){
|
|
for file in `ls /data/usr/log/ | grep ^messages\.[1-4]\.gz$`; do
|
|
GZ_LOGS=${GZ_LOGS}" /data/usr/log/"${file}
|
|
done
|
|
}
|
|
|
|
if [ "$hardware" = "R1D" ] || [ "$hardware" = "R2D" ]; then
|
|
/sbin/wifi_rate.sh 6 1 >> $LOG_TMP_FILE_PATH
|
|
local wps_proc_status
|
|
for count in `seq 0 3`; do
|
|
i=$(($count%2))
|
|
wps_proc_status=`nvram get wps_proc_status`
|
|
|
|
if [ "$wps_proc_status" = "0" ]; then
|
|
log_exec "acs_cli -i wl$i dump bss"
|
|
else
|
|
echo "========== wps is running!" >>$LOG_TMP_FILE_PATH
|
|
fi
|
|
log_exec "iwinfo wl$i info"
|
|
log_exec "iwinfo wl$i assolist"
|
|
log_exec "wl -i wl$i dump wlc"
|
|
log_exec "wl -i wl$i dump bsscfg"
|
|
log_exec "wl -i wl$i dump scb"
|
|
log_exec "wl -i wl$i dump ampdu"
|
|
log_exec "wl -i wl$i dump dma"
|
|
log_exec "wl -i wl$i chanim_stats"
|
|
log_exec "wl -i wl$i counters"
|
|
log_exec "wl -i wl$i dump stats"
|
|
log_exec "wl -i wl$i curpower"
|
|
sleep 1
|
|
done
|
|
elif [ "$hardware" = "R3D" ]; then
|
|
for i in `seq 0 1`; do
|
|
# wifi
|
|
log_exec "athstats -i wifi$i >> $LOG_TMP_FILE_PATH"
|
|
done
|
|
for i in 0 1 13 14; do
|
|
# wl
|
|
log_exec "iwinfo wl$i info >> $LOG_TMP_FILE_PATH"
|
|
log_exec "iwinfo wl$i assolist >> $LOG_TMP_FILE_PATH"
|
|
log_exec "iwinfo wl$i txpowerlist >> $LOG_TMP_FILE_PATH"
|
|
log_exec "iwinfo wl$i freqlist >> $LOG_TMP_FILE_PATH"
|
|
log_exec "wlanconfig wl$i list >> $LOG_TMP_FILE_PATH"
|
|
log_exec "80211stats -a -i wl$i >> $LOG_TMP_FILE_PATH"
|
|
log_exec "iwpriv wl$i txrx_fw_stats 1"
|
|
log_exec "iwpriv wl$i txrx_fw_stats 3"
|
|
log_exec "iwpriv wl$i txrx_fw_stats 19"
|
|
log_exec "iwpriv wl$i txrx_fw_stats 20"
|
|
done
|
|
/usr/sbin/getneighbor.sh ${LOG_TMP_FILE_PATH} > /dev/null 2>&1
|
|
else
|
|
#On R1CM, The follow cmd will print result to dmesg.
|
|
for i in `seq 0 3`; do
|
|
log_exec "iwinfo wl$i info"
|
|
log_exec "iwinfo wl$i assolist"
|
|
log_exec "iwinfo wl$i txpowerlist"
|
|
log_exec "iwinfo wl$i freqlist"
|
|
log_exec "iwpriv wl$i stat"
|
|
log_exec "iwpriv wl$i show stat"
|
|
log_exec "iwpriv wl$i show stainfo"
|
|
log_exec "iwpriv wl$i rf"
|
|
log_exec "iwpriv wl$i bbp"
|
|
done
|
|
/usr/sbin/getneighbor.sh ${LOG_TMP_FILE_PATH} > /dev/null 2>&1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
#On R1D, the follow print to UART.
|
|
echo "==========dmesg:" >> $LOG_TMP_FILE_PATH
|
|
dmesg >> $LOG_TMP_FILE_PATH
|
|
sleep 1
|
|
echo "==========meminfo" >> $LOG_TMP_FILE_PATH
|
|
cat $LOG_MEMINFO >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========topinfo" >> $LOG_TMP_FILE_PATH
|
|
top -b -n1 >> $LOG_TMP_FILE_PATH
|
|
|
|
echo "==========slabinfo" >> $LOG_TMP_FILE_PATH
|
|
cat $LOG_SLABINFO >> $LOG_TMP_FILE_PATH
|
|
|
|
[ -f "/usr/sbin/et" ] && {
|
|
echo "==========et port_status:" >> $LOG_TMP_FILE_PATH
|
|
/usr/sbin/et port_status >> $LOG_TMP_FILE_PATH
|
|
}
|
|
|
|
[ -b /dev/sda -a "SATA" = "`getdisk bus sda`" ] && {
|
|
echo "==========smartctl info:" >> $LOG_TMP_FILE_PATH
|
|
smartctl --all /dev/sda >> $LOG_TMP_FILE_PATH
|
|
}
|
|
|
|
#dump ppp and vpn status
|
|
log_exec "cat /tmp/pppoe.log"
|
|
log_exec "cat /tmp/vpn.stat.msg"
|
|
log_exec "ubus call turbo_ccgame get_pass"
|
|
|
|
|
|
iptables-save -c > $IPTABLES_SAVE
|
|
ubus call trafficd hw '{"debug":true}' > $TRAFFICD_LOG
|
|
|
|
# list enabled plugin's name
|
|
list_plugin /userdisk/appdata/app_infos $PLUGIN_LOG
|
|
|
|
list_messages_gz
|
|
|
|
MICLOUD_LOG_PATH="/userdisk/data/.pluginConfig/2882303761517344979/micloudBackup.log"
|
|
|
|
[ -f $MICLOUD_LOG_PATH ] && {
|
|
FILE_SIZE=`ls -l $MICLOUD_LOG_PATH | awk '{print $5}'`
|
|
[ $FILE_SIZE -lt 4194304 ] && {
|
|
cp $MICLOUD_LOG_PATH $MICLOUD_LOG
|
|
}
|
|
}
|
|
|
|
# busybox's tar requires every source file existing!!
|
|
[ -e "$IPTABLES_SAVE" ] || IPTABLES_SAVE=
|
|
[ -e "$TRAFFICD_LOG" ] || TRAFFICD_LOG=
|
|
[ -e "$PLUGIN_LOG" ] || PLUGIN_LOG=
|
|
[ -e "$NETWORK_STRIP" ] || NETWORK_STRIP=
|
|
[ -e "$MICLOUD_LOG" ] || MICLOUD_LOG=
|
|
move_files="$LOG_TMP_FILE_PATH $IPTABLES_SAVE $TRAFFICD_LOG $PLUGIN_LOG $NETWORK_STRIP $WIRELESS_STRIP $MICLOUD_LOG"
|
|
[ -e "$DHCP_LEASE" ] || DHCP_LEASE=
|
|
[ -e "$DNSMASQ_CONF" ] || DNSMASQ_CONF=
|
|
[ -e "$MACFILTER_FILE_PATH" ] || MACFILTER_FILE_PATH=
|
|
[ -e "$CRONTAB" ] || CRONTAB=
|
|
[ -e "$QOS_CONF" ] || QOS_CONF=
|
|
[ -e "$WIFISHARE_CONF" ] || WIFISHARE_CONF=
|
|
dup_files="$DHCP_LEASE $DNSMASQ_CONF $MACFILTER_FILE_PATH $CRONTAB $QOS_CONF $WIFISHARE_CONF"
|
|
|
|
[ -e "$LOGREAD_FILE_PATH" ] || LOGREAD_FILE_PATH=
|
|
[ -e "$LOGREAD0_FILE_PATH" ] || LOGREAD0_FILE_PATH=
|
|
[ -e "$PANIC_FILE_PATH" ] || PANIC_FILE_PATH=
|
|
[ -e "$LOG_WIFI_AYALYSIS" ] || LOG_WIFI_AYALYSIS=
|
|
[ -e "$LOG_WIFI_AYALYSIS0" ] || LOG_WIFI_AYALYSIS0=
|
|
[ -e "$GZ_LOGS" ] || GZ_LOGS=
|
|
[ -e "$LOG_DIR" ] || LOG_DIR=
|
|
[ -e "$TMP_WIFI_LOG" ] || TMP_WIFI_LOG=
|
|
if [ "$redundancy_mode" = "1" ]; then
|
|
redundancy_files="$LOGREAD_FILE_PATH $LOGREAD0_FILE_PATH $PANIC_FILE_PATH $LOG_WIFI_AYALYSIS $LOG_WIFI_AYALYSIS0 $GZ_LOGS"
|
|
else
|
|
redundancy_files="$LOG_DIR $PANIC_FILE_PATH $TMP_WIFI_LOG"
|
|
fi
|
|
tar -zcf $LOG_ZIP_FILE_PATH $move_files $dup_files $redundancy_files
|
|
rm "$move_files" > /dev/null
|