Linux 登陆显示系统信息脚本

#!/bin/bash
 
date=`date "+%F %T"`
head="System information as of: $date"
 
kernel=`uname -r`
hostname=`echo $HOSTNAME`
 
#Cpu load
load1=`cat /proc/loadavg | awk '{print $1}'`
load5=`cat /proc/loadavg | awk '{print $2}'`
load15=`cat /proc/loadavg | awk '{print $3}'`
 
#System uptime
uptime=`cat /proc/uptime | cut -f1 -d.`
upDays=$((uptime/60/60/24))
upHours=$((uptime/60/60%24))
upMins=$((uptime/60%60))
upSecs=$((uptime%60))
up_lastime=`date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"`
 
#Memory Usage
mem_usage=`free -m | awk '/Mem:/{total=$2} /buffers\/cache/ {used=$3} END {printf("%3.2f%%",used/total*100)}'`
 
#Processes
processes=`ps aux | wc -l`
zombie_processes=`ps axo stat |grep Z |wc -l`
 
#Flavor
cpus=`cat /proc/cpuinfo |grep processor |wc -l`
mem=`cat /proc/meminfo |grep MemTotal|awk '{print $2/1024/1024+0.9}'|cut -d. -f1`
#disk=`lsblk -l |grep -w vd[a-z] |sed 's/G//g'|awk '{sum+=$4} END {print sum}'`
disk=`lsblk -l |grep -w vd[a-z] |sed 's/G//g'|awk '{print $4}'|awk 'BEGIN{FS="\n";RS="";ORS=""}{for(x=1;x<=NF;x++){print "-"$x"g"} print "\n"}'`
 
#User
users=`users | wc -w`
USER=`whoami`
 
#System fs usage
Filesystem=$(df -hP | awk '/^\/dev/{print $6}')
 
#Interfaces
INTERFACES=$(ip -4 ad | grep 'state ' | awk -F":" '!/^[0-9]*: ?lo/ {print $2}')
 
 
echo
echo -e "\t\033[34m*$head\033[0m"
printf "\n"
printf "\t""Kernel Version:\t%s\n" $kernel
printf "\t""HostName:\t%s\n" $hostname
printf "\t""System Load:\t%s %s %s\n" $load1, $load5, $load15
printf "\t""System Uptime:\t%s"d," %s"h," %s"m," %s"s"\n" $upDays $upHours $upMins $upSecs
printf "\t""Login Users:\t%s\t\tWhoami:\t%s\n" $users $USER
printf "\t""Processes:\t%s\t\tZombie Proce:\t%s\n" $processes $zombie_processes
printf "\t""Flavor Size:\t%sc_%sg%s\tMemory Usage:\t%s\n" $cpus $mem $disk $mem_usage
printf "\n"
printf "\t""Filesystem\tUsage\t\tTotal\n"
for f in $Filesystem
 do
    Usage=$(df -hP | awk '{if($NF=="'''$f'''") print $5}')
    Total=$(df -hP | awk '{if($NF=="'''$f'''") print $2}')
 
    echo -e "\t$f\t\t$Usage\t\t$Total"
 done
printf "\n"
printf "\t""Interface\tMAC Address\t\tIP Address\n"
for i in $INTERFACES
 do
    MAC=$(ip ad show dev $i | grep "link/ether" | awk '{print $2}')
    IP=$(ip ad show dev $i | awk '/inet / {print $2}' |awk 'BEGIN{FS="\n";RS="";ORS=""}{for(x=1;x<=NF;x++){print $x"\t"} print "\n"}')
    echo -e  "\e[1;31m\t"$i"\t\t"$MAC"\t$IP\e[0m"
 done
echo

用于用户登录后显示系统信息

原文地址:http://blog.51cto.com/coolsky/2141848

时间: 2024-10-07 03:14:22

Linux 登陆显示系统信息脚本的相关文章

python显示系统信息脚本

#!/usr/bin/env python import subprocess uname = "uname" uname_arg = "-a" print "Gathering system information with %s command:\n" % uname subprocess.call([uname,uname_arg]) diskspace = "df" diskspace_arg = "-h&q

Mac ssh登陆linux并且显示linux图形

背景: Mac 通过[终端]ssh登陆linux并且在Mac显示linux图形 Mac 主机IP: 10.2.1.1 linux 主机IP: 192.168.1.1 说明: 想要ssh访问并且显示linux主机图形,在这里,首先要使用XQuartz工具.其次要告诉linux主机将要把图形显示到哪里(DISPLAY),另外要在Mac端开放访问权限(xhost) 步骤: 1- Mac安装 XQuartz 2.7.4 2- 启动XQuartz, 选择[应用程序]->[xterm] 3- 通过此xter

linux 系统管理(三) 系统信息查看 inx

inxi infomation x i (信息每个人都爱) Inxi 最初是为控制台和 IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试或者社区技术支持工具. 使用 Inxi 可以很容易的获取所有的你想要的信息: 硬件信息:硬盘.声卡.显卡.网卡.CPU 和 RAM 等. 操作系统信息,比如硬件驱动.Xorg .桌面环境.内核.GCC 版本,进程,开机时间和内存等信息. $ sudo apt-get install inxi [On

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*

Linux中文显示乱码?如何设置centos显示中文

Linux中文显示乱码?如何设置centos显示中文 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的.以centos为例,操作Linux怎么查看语言,设置修改语言 1.查看当前系统语言 登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言.如 2.查看安装的语言包 查看是否有中文语言包可以在终端输入 lo

Linux Shell 运维脚本功底积累

1.删除Linux远程用户连接会话 [[email protected] logs]# w 10:45:28 up 15 days, 16:23, 4 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - Sun21 4days 0.00s 0.00s -bash root pts/0 192.168.1.2 09:11 0.00s 0.07s 0

Linux之部分shell脚本练习

#键盘键入两个整数,并计算它们之和#!/bin/bash##echo -n "Input two Intergers:"read -t 5 -p "Input two Intergers[100 and 200]:" A B[ -z $A ] && A=100[ -z $B ] && B=200echo "$A plus $B is:$[$A+$B]" #归档文件的脚本#!/bin/bash#read -p &qu

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

linux 下shell 编写脚本

linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个脚本,给定一个正整数,反序输出这个这个数. 例如:程序输入123,那么应该输出321. 3.Linux命令+shell编程:编写一个程序,实现定时文件备份的功能. 要求: 1.备份某个目录下的所有文件 2.对备份文件进行压缩 3.生成合理的日志文件 4.Shell下的gui(libnotify-bi