Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- clear
- function color (){
- echo "\e[$1m$2\e[0m"
- }
- function center (){
- local str="$1"
- let spacesLeft=(60-${#1})/2
- let spacesRight=0-spacesLeft-${#1}
- while [ $spacesLeft -gt 0 ]; do
- str=" $str"
- let spacesLeft=spacesLeft-1
- done
- while [ $spacesRight -gt 0 ]; do
- str="$str "
- let spacesRight=spacesRight-1
- done
- echo "$str"
- }
- function hcenter {
- text="$1"
- cols=`tput cols`
- IFS=$'\n'$'\r'
- for line in $(echo -e $text); do
- line_length=`echo $line| wc -c`
- half_of_line_length=`expr $line_length / 2`
- center=`expr \( $cols / 2 \) - $half_of_line_length`
- spaces=""
- for ((i=0; i < $center; i++)) {
- spaces="$spaces "
- }
- echo "$spaces$line"
- done
- }
- function sec2time (){
- local input=$1
- if [ $input -lt 60 ]; then
- echo "$input seconds"
- else
- ((days=input/86400))
- ((input=input%86400))
- ((hours=input/3600))
- ((input=input%3600))
- ((mins=input/60))
- local daysPlural="s"
- local hoursPlural="s"
- local minsPlural="s"
- if [ $days -eq 1 ]; then
- daysPlural=""
- fi
- if [ $hours -eq 1 ]; then
- hoursPlural=""
- fi
- if [ $mins -eq 1 ]; then
- minsPlural=""
- fi
- echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
- fi
- }
- read one five fifteen rest < /proc/loadavg
- borderColor=0
- headerLeafColor=32
- headerRaspberryColor=31
- greetingsColor=36
- statsLabelColor=32
- borderLine=""
- borderTopLine=$(color $borderColor "$borderLine")
- borderBottomLine=$(color $borderColor "$borderLine")
- borderBar=$(color $borderColor "")
- borderEmptyLine="$borderBar"
- me=$(whoami)
- # Greetings
- greetings="\n$(color $greetingsColor "$(hcenter "Welcome back, $me!")")\n"
- greetings="$greetings $(color $greetingsColor "$(hcenter "$(date +"%A, %d %B %Y, %I:%M:%S")")")\n"
- # System information
- read loginFrom loginIP loginDate <<< $(last $me iso -2 | awk 'NR==2 { print $2,$3,$4 }')
- # TTY login
- if [[ $loginDate == - ]]; then
- loginDate=$loginIP
- loginIP=$loginFrom
- fi
- # if [[ $loginDate == *T* ]]; then
- login="$(date -d $loginDate +"%A, %d %B %Y") ($loginIP)"
- # else
- # # Not enough logins
- # login="None"
- # fi
- # Uptime
- #uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
- uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
- load1m=$(uptime | awk '{ print $10 }' | cut -c1-4)
- load5m=$(uptime | awk '{ print $11 }' | cut -c1-4)
- load15m=$(uptime | awk '{ print $12 }' | cut -c1-4)
- label1="$login"
- label1=" $(color $statsLabelColor "Last Login....:") $label1"
- label2="$uptime"
- label2=" $(color $statsLabelColor "Uptime........:") $label2"
- label3="$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')"
- label3=" $(color $statsLabelColor "Memory........:") $label3"
- label4="$(df -h /dev/sda5 | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')"
- label4=" $(color $statsLabelColor "Storage.......:") $label4"
- label5="${load1m} (1min) ${load5m} (5min) ${load15m} (15min)"
- label5=" $(color $statsLabelColor "Load Average..:") $label5"
- label6="$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC"
- label6=" $(color $statsLabelColor "Temperature...:") $label6"
- stats="$label1\n$label2\n$label3\n$label4\n$label5\n$label6"
- # Print motd
- echo -e "$greetings\n$stats\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement