So, ich bin fürs erste fertig mit meinem script. Es ist quasi ein motd-script und läuft bei mir bei jedem login, auch per ssh. Probierts mal aus.. 😉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #!/bin/bash PROCCOUNT=`ps -Afl | wc -l` PROCCOUNT=`expr $PROCCOUNT - 5` GROUPZ=`groups` ETH0ADRESS=`ifconfig eth0 2>/dev/null | grep "inet " | awk -F: '{print $2}' | awk '{print $1}'` WLAN0ADRESS=`ifconfig wlan0 eth0 2>/dev/null | grep "inet " | awk -F: '{print $2}' | awk '{print $1}'` #wenn variable leer, dann... if [ -z "$ETH0ADRESS" ] ; then ETH0ADRESS="\e[1;31mnot connected\e[00m" fi if [ -z "$WLAN0ADRESS" ] ; then WLAN0ADRESS="\e[1;31mnot connected\e[00m" fi if [[ $GROUPZ == *irc* ]]; then ENDSESSION=`cat /etc/security/limits.conf | grep "@irc" | grep maxlogins | awk {'print $4'}` PRIVLAGED="IRC Account" else ENDSESSION="Unlimited" PRIVLAGED="Regular User" fi UPTIME_DAYS=$(expr `cat /proc/uptime | cut -d '.' -f1` % 31556926 / 86400) UPTIME_HOURS=$(expr `cat /proc/uptime | cut -d '.' -f1` % 31556926 % 86400 / 3600) UPTIME_MINUTES=$(expr `cat /proc/uptime | cut -d '.' -f1` % 31556926 % 86400 % 3600 / 60) if [ "$XDG_CURRENT_DESKTOP" = "" ] then desktop=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/') else desktop=$XDG_CURRENT_DESKTOP fi #desktop=${desktop,,} # convert to lower case #einlesen der physischen hdds -> array disks=( $(sed -ne 's/.*\([sh]d[a-zA-Z]\+$\)/\1/p' /proc/partitions) ) #alle disks ausgeben: for i in ${disks[@]}; do #groesse der hdds auslesen, filtern size=$(lsblk | awk -v disklabel=$i '$1==disklabel{print $4}') #TODO: komma durch punkt ersetzen, G durch _G device=/dev/$i #geraetenamen erstellen partspace=$(df --local --block-size=1M --output=avail,source ${device}?* | grep -oP "(\d+(?=\s${device}\d+))") for k in ${partspace[@]}; do #aufsummieren des freien platzes ((freesize+=$k)) done #groesse umrechnen if [ $freesize -gt 1100 ]; then freesize=`echo "scale=1; $freesize / 1024" | bc`"G" else freesize=$[$freesize]"M" fi #ausgabe zusammenfassen freestring=$freestring"\e[1;31m${i}: \033[32m${size}iB \033[34m(${freesize}iB free)\e[00m " freesize=0 #null setzen fuer naechsten durchlauf done echo -e "\033[1;32m \033[0;35m++++++++++++++++++++: \033[0;37mSystem Data\033[0;35m :++++++++++++++++++++++++++++ \033[0;37mHostname \033[0;35m= \033[1;32m`hostname` \033[0;37mDistro \033[0;35m= \033[1;32m`lsb_release -s -d` with `uname -r` \033[0;37mDesktop \033[0;35m= \033[1;32m$desktop \033[0;37mAddress \033[0;35m= \033[1;32meth0: \033[34m$ETH0ADRESS \033[1;32mwlan0: \033[34m$WLAN0ADRESS \033[0;37mKernel \033[0;35m= \033[1;32m`uname -r` \033[0;37mUptime \033[0;35m= \033[1;32m$UPTIME_DAYS days, $UPTIME_HOURS hours, $UPTIME_MINUTES minutes \033[0;37mCPU \033[0;35m= \033[1;32m`cat /proc/cpuinfo | grep 'model name' | head -1 | cut -d':' -f2` \033[0;37mMemory \033[0;35m= \033[1;32m`cat /proc/meminfo | grep MemTotal | awk {'print $2'}` kB / \033[34m`cat /proc/meminfo | grep MemFree | awk {'print $2'}` kB free \033[0;37mSwap \033[0;35m= \033[1;32m`free -m | tail -n 1 | awk {'print $2'}`M / `free -m | tail -n 1 | awk {'print $4'}`M free \033[0;37mDisk \033[0;35m= \033[1;32m$freestring \033[0;35m+++++++++++++++++++++: \033[0;37mUser Data\033[0;35m :++++++++++++++++++++++++++++ \033[0;37mUsername \033[0;35m= \033[1;32m`whoami` \033[0;37mPrivlages \033[0;35m= \033[1;32m$PRIVLAGED \033[0;37mSessions \033[0;35m= \033[1;32m`who | grep $USER | wc -l` of $ENDSESSION MAX \033[0;37mProcesses \033[0;35m= \033[1;32m$PROCCOUNT of `ulimit -u` MAX \033[0;35m+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " |