bash uptime days

Днес поработих малко над новата NUKI верси. Най накрая докарах ред и до нея, а ми се ще да я пооправя малко преди  да пусна последната стабилна, вероятно и финална версия. Та имах идеята да проверявам колко дни е uptime на приемник,  че повечето ми правят проблеми след като са били повечко време, затова реших да правя през 10 дни един прфилактичен рестарт. Набързо драснах конвеирче дето да ми изчиства дните от останалите променливи защото резултата откомандата uptime е доста неприятен за работа

# uptime
12:13:57 up 30 days, 20:07,  1 user,  load average: 0.00, 0.00, 0.00

Та въпросни ред се филтрира само от суперския конвеир 😛

uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'

Като ако работното време е дни резултат е цяло число с дните, а ако е часове резулататът е подобен на

[email protected]:~$ uptime | awk -F'up' '{ print $2 }' | awk -F'days' '{ print $1 }'
1:34,  5 users,  load average: 0.46, 0.39, 0.41
[email protected]:~$

Заради Което минава през проверка за вида на стойноста

if echo $days | grep "^[0-9]*$" > /tmp/null
then
   echo "Uptime in days is $days"
else
  echo "Uptime isnt in days"
fi

Просто лесно и ясно в if-а конструкцията проверява дали стоиснота съдържа само цифри с регулярни израз grep „^[0-9]*$“.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

Anti SPAM * Time limit is exhausted. Please reload CAPTCHA.