High sys problem location information collection script

#/bin/sh
while [ 1 ]
do
top -bn2  | grep "Cpu(s)" | tail -1 | \
awk '
{
    while ("date" | getline date) {
        split(date, str, " ");
        prefix=sprintf("%s_%s_%s_%s", str[2],str[3], str[4], str[5]);
        print prefix;
    }
    split($2, x, "%");
    split($3, y, "%");
    #print x[1];
    #print and[1];
    if (x[1] < 30.0 && y[1] > 15.0) {
        sys_usr_file=sprintf("/tmp/%s_info.highsys", prefix);
        print x[1] > sys_usr_file;
        print y[1] >> sys_usr_file;
 
        system("echo t > /proc/sysrq-trigger");
 
        vmstat_file=sprintf("/tmp/%s_vmstat.highsys", prefix);
        while ("cat /proc/vmstat" | getline vmstat_info) {
            print vmstat_info > vmstat_file
        }
 
        buddyinfo_file=sprintf("/tmp/%s_buddyinfo.highsys", prefix);
        while ("cat /proc/buddyinfo" | getline buddyinfo_info) {
            print buddyinfo_info > buddyinfo_file
        }
 
        zoneinfo_file=sprintf("/tmp/%s_zoneinfo.highsys", prefix);
        while ("cat /proc/zoneinfo" | getline zoneinfo_info) {
            print zoneinfo_info > zoneinfo_file
        }
    } else {
    }
}'
sleep 1m
done

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326807926&siteId=291194637