@@ -658,6 +658,7 @@ save_ip_info() {
658
658
save_ip " route show table all" " route"
659
659
save_ip " neigh" " neigh"
660
660
save_ip " -s neigh show nud noarp" " neigh.noarp"
661
+ save_ip " -s link" " link.stats"
661
662
}
662
663
663
664
# ##############################################################################
@@ -773,6 +774,59 @@ save_proc() {
773
774
$RM $V -rf $TARDIR /proc
774
775
}
775
776
777
+ # ##############################################################################
778
+ # Dump io stats for processes
779
+ # Globals:
780
+ # V
781
+ # TARDIR
782
+ # MKDIR
783
+ # CP
784
+ # DUMPDIR
785
+ # TAR
786
+ # RM
787
+ # BASE
788
+ # TARFILE
789
+ # NOOP
790
+ # Arguments:
791
+ # None
792
+ # Returns:
793
+ # None
794
+ # ##############################################################################
795
+ save_proc_stats () {
796
+ trap ' handle_error $? $LINENO' ERR
797
+ $MKDIR $V -p $TARDIR /proc_stats
798
+
799
+ local stats_file=/tmp/stats
800
+ echo > $stats_file
801
+ for pid in /proc/[[:digit:]]*
802
+ do
803
+ pid_num=${pid// [!0-9]/ }
804
+ cmdline=` eval ps -p $pid_num -o args --no-headers`
805
+ if test -n " $cmdline " ; then
806
+ echo pid $pid
807
+ echo cmdline: $cmdline
808
+ cat $pid /io; echo
809
+ else
810
+ # Dump also internal kernel processes if they perform writes
811
+ write_bytes=$( cat $pid /io | grep -w write_bytes: | cut -b 14-)
812
+ if [ " $write_bytes " != " 0" ]; then
813
+ echo pid $pid - ` cat $pid /comm` :
814
+ cat $pid /io; echo
815
+ fi
816
+ fi
817
+ done >> $stats_file 2>&1
818
+
819
+ if $NOOP ; then
820
+ echo " $CP $V -r $stats_file $TARDIR /proc_stats"
821
+ else
822
+ ( $CP $V -r $stats_file $TARDIR /proc_stats ) || echo " $stats_file error" > $TARDIR /$stats_file
823
+ fi
824
+
825
+ $TAR $V -rhf $TARFILE -C $DUMPDIR --mode=+rw $BASE /proc_stats
826
+ $RM $V -rf $TARDIR /proc_stats
827
+ $RM -rf $stats_file
828
+ }
829
+
776
830
# ##############################################################################
777
831
# Dumps all fields and values from given Redis DB.
778
832
# Arguments:
@@ -830,7 +884,7 @@ save_platform_info() {
830
884
if [[ ! $PLATFORM =~ .* (mlnx| nvidia).* simx.* ]]; then
831
885
save_cmd " show platform syseeprom" " syseeprom"
832
886
save_cmd " show platform psustatus" " psustatus"
833
- save_cmd " show platform ssdhealth" " ssdhealth"
887
+ save_cmd " show platform ssdhealth --vendor " " ssdhealth"
834
888
save_cmd " show platform temperature" " temperature"
835
889
save_cmd " show platform fan" " fan"
836
890
fi
@@ -1412,6 +1466,7 @@ main() {
1412
1466
/proc/uptime /proc/version /proc/vmallocinfo /proc/vmstat \
1413
1467
/proc/zoneinfo \
1414
1468
|| abort " ${EXT_PROCFS_SAVE_FAILED} " " Proc saving operation failed. Aborting for safety."
1469
+ save_proc_stats
1415
1470
end_t=$( date +%s%3N)
1416
1471
echo " [ Capture Proc State ] : $(( $end_t - $start_t )) msec" >> $TECHSUPPORT_TIME_INFO
1417
1472
@@ -1435,6 +1490,7 @@ main() {
1435
1490
save_cmd " show version" " version"
1436
1491
save_cmd " show platform summary" " platform.summary"
1437
1492
save_cmd " cat /host/machine.conf" " machine.conf"
1493
+ save_cmd " cat /boot/config-$( uname -r) " " boot.conf"
1438
1494
save_cmd " docker stats --no-stream" " docker.stats"
1439
1495
1440
1496
save_cmd " sensors" " sensors"
@@ -1498,6 +1554,12 @@ main() {
1498
1554
done
1499
1555
fi
1500
1556
1557
+ save_cmd " dpkg -l" " dpkg"
1558
+ save_cmd " who -a" " who"
1559
+ save_cmd " swapon -s" " swapon"
1560
+ save_cmd " hdparm -i /dev/sda" " hdparm"
1561
+ save_cmd " ps -AwwL -o user,pid,lwp,ppid,nlwp,pcpu,pri,nice,vsize,rss,tty,stat,wchan:12,start,bsdtime,command" " ps.extended"
1562
+
1501
1563
save_saidump
1502
1564
1503
1565
if [ " $asic " = " barefoot" ]; then
@@ -1527,7 +1589,7 @@ main() {
1527
1589
rm_list=$( find -L $TARDIR /etc -maxdepth 5 -type l)
1528
1590
if [ ! -z " $rm_list " ]
1529
1591
then
1530
- rm $rm_list
1592
+ rm -f $rm_list
1531
1593
fi
1532
1594
1533
1595
# Remove secret from /etc files before tar
0 commit comments