Цветной консольный

У меня SSD на 250 гб и постоянно проверять сколько же у меня свободного места мне лень. А еще мне не нравится простой смерный dmesg, ну и так, по мелочам.

Каждый раз открывая консоль, я хочу видеть, что интересного у меня в системе. А именно: загруженность cpu, использование памяти, свободное место на диске, ошибки из dmesg.

Начнем с правки dmesg. Хочу время в цивильном формате и раскраску. На просторах интернетов нашла скриптик на перле и чуть поправила:


#!/usr/bin/perl -w
use Term::ANSIColor;
use strict;
my @dmesg_new = ();
my $dmesg = "/bin/dmesg";
my @dmesg_old = `$dmesg`;
my $now = time();
my $uptime = `cat /proc/uptime | cut -d"." -f1`;
my $t_now = $now - $uptime;
sub format_time {
my @time = localtime $_[0];
$time[4]+=1;
$time[5]+=1900;
return sprintf colored( sprintf('%4i-%02i-%02i %02i:%02i:%02i', @time[reverse 0..5]), 'white' );
#return sprintf '%4i-%02i-%02i %02i:%02i:%02i', @time[reverse 0..5]; no color
}
foreach my $line ( @dmesg_old )
{
chomp( $line );
if( $line =~ m/\[\s*(\d+)\.(\d+)\](.*)/i )
{
# now - uptime + sekunden
my $t_time = format_time( $t_now + $1 );
push( @dmesg_new , "[$t_time] $3" );
}
}
print join( "\n", @dmesg_new );
print "\n";

Я его положила в /etc/scripts/

Теперь редактировать .bashrc. Вписала строку
alias dmesg="/etc/scripts/dmesg_time.pl"

А теперь информер


cat /etc/profile.d/login.sh

#!/bin/bash
uptime | awk -F, '{print "\033[1;37muptime\033[0m" $1}'
ps aux | awk '{s += $3} END {print "\033[1;37mcpu\033[0m " s "%"}'
ps aux | awk '{s += $4} END {print "\033[1;37mmem \033[0m" s "%"}'
df | grep -E "/$" | awk '{print "\033[1;37muse / \033[0m" $5}'
df | grep -E "/home$" | awk '{print "\033[1;37muse /home \033[0m" $5}'
df | grep -E "/home$" | awk '{print "\033[1;31mfree /home \033[0m" $4}'
df | grep -E "/$" | awk '{print "\033[1;31mfree / \033[0m" $4}'
echo -e "\033[1;37mprocess: \033[0m " `ps aux | wc -l`
echo -e "dmesg error \n `/etc/scripts/dmesg_time.pl | grep -i error | tail -10` "

зы. Когда-нибудь я заведу гитхаб.

Leave your comment