Advertisement
RiDeag

motd

May 31st, 2014
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. clear
  4.  
  5. function color (){
  6. echo "\e[$1m$2\e[0m"
  7. }
  8.  
  9. function center (){
  10. local str="$1"
  11. let spacesLeft=(60-${#1})/2
  12. let spacesRight=0-spacesLeft-${#1}
  13. while [ $spacesLeft -gt 0 ]; do
  14. str=" $str"
  15. let spacesLeft=spacesLeft-1
  16. done
  17.  
  18. while [ $spacesRight -gt 0 ]; do
  19. str="$str "
  20. let spacesRight=spacesRight-1
  21. done
  22.  
  23. echo "$str"
  24. }
  25.  
  26. function hcenter {
  27.  
  28. text="$1"
  29.  
  30. cols=`tput cols`
  31.  
  32. IFS=$'\n'$'\r'
  33. for line in $(echo -e $text); do
  34.  
  35. line_length=`echo $line| wc -c`
  36. half_of_line_length=`expr $line_length / 2`
  37. center=`expr \( $cols / 2 \) - $half_of_line_length`
  38.  
  39. spaces=""
  40. for ((i=0; i < $center; i++)) {
  41. spaces="$spaces "
  42. }
  43.  
  44. echo "$spaces$line"
  45.  
  46. done
  47.  
  48. }
  49.  
  50. function sec2time (){
  51. local input=$1
  52.  
  53. if [ $input -lt 60 ]; then
  54. echo "$input seconds"
  55. else
  56. ((days=input/86400))
  57. ((input=input%86400))
  58. ((hours=input/3600))
  59. ((input=input%3600))
  60. ((mins=input/60))
  61.  
  62. local daysPlural="s"
  63. local hoursPlural="s"
  64. local minsPlural="s"
  65.  
  66. if [ $days -eq 1 ]; then
  67. daysPlural=""
  68. fi
  69.  
  70. if [ $hours -eq 1 ]; then
  71. hoursPlural=""
  72. fi
  73.  
  74. if [ $mins -eq 1 ]; then
  75. minsPlural=""
  76. fi
  77.  
  78. echo "$days day$daysPlural, $hours hour$hoursPlural, $mins minute$minsPlural"
  79. fi
  80. }
  81.  
  82. read one five fifteen rest < /proc/loadavg
  83.  
  84. borderColor=0
  85. headerLeafColor=32
  86. headerRaspberryColor=31
  87. greetingsColor=36
  88. statsLabelColor=32
  89.  
  90. borderLine=""
  91. borderTopLine=$(color $borderColor "$borderLine")
  92. borderBottomLine=$(color $borderColor "$borderLine")
  93. borderBar=$(color $borderColor "")
  94. borderEmptyLine="$borderBar"
  95.  
  96. me=$(whoami)
  97.  
  98. # Greetings
  99. greetings="\n$(color $greetingsColor "$(hcenter "Welcome back, $me!")")\n"
  100. greetings="$greetings $(color $greetingsColor "$(hcenter "$(date +"%A, %d %B %Y, %I:%M:%S")")")\n"
  101.  
  102. # System information
  103. read loginFrom loginIP loginDate <<< $(last $me iso -2 | awk 'NR==2 { print $2,$3,$4 }')
  104.  
  105. # TTY login
  106. if [[ $loginDate == - ]]; then
  107. loginDate=$loginIP
  108. loginIP=$loginFrom
  109. fi
  110.  
  111. # if [[ $loginDate == *T* ]]; then
  112. login="$(date -d $loginDate +"%A, %d %B %Y") ($loginIP)"
  113. # else
  114. # # Not enough logins
  115. # login="None"
  116. # fi
  117.  
  118. # Uptime
  119. #uptime="$uptime ($(date -d "@"$(grep btime /proc/stat | cut -d " " -f 2) +"%d-%m-%Y %H:%M:%S"))"
  120. uptime="$(sec2time $(cut -d "." -f 1 /proc/uptime))"
  121. load1m=$(uptime | awk '{ print $10 }' | cut -c1-4)
  122. load5m=$(uptime | awk '{ print $11 }' | cut -c1-4)
  123. load15m=$(uptime | awk '{ print $12 }' | cut -c1-4)
  124.  
  125. label1="$login"
  126. label1=" $(color $statsLabelColor "Last Login....:") $label1"
  127.  
  128. label2="$uptime"
  129. label2=" $(color $statsLabelColor "Uptime........:") $label2"
  130.  
  131. label3="$(free -m | awk 'NR==2 { printf "Total: %sMB, Used: %sMB, Free: %sMB",$2,$3,$4; }')"
  132. label3=" $(color $statsLabelColor "Memory........:") $label3"
  133.  
  134. label4="$(df -h /dev/sda5 | awk 'NR==2 { printf "Total: %sB, Used: %sB, Free: %sB",$2,$3,$4; }')"
  135. label4=" $(color $statsLabelColor "Storage.......:") $label4"
  136.  
  137. label5="${load1m} (1min) ${load5m} (5min) ${load15m} (15min)"
  138. label5=" $(color $statsLabelColor "Load Average..:") $label5"
  139.  
  140. label6="$(/opt/vc/bin/vcgencmd measure_temp | cut -c "6-9")ºC"
  141. label6=" $(color $statsLabelColor "Temperature...:") $label6"
  142.  
  143. stats="$label1\n$label2\n$label3\n$label4\n$label5\n$label6"
  144.  
  145. # Print motd
  146. echo -e "$greetings\n$stats\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement