-
#OS type 操作系统类型(GNU/Linux) os=$(umame -o) #OS version 操作系统版本(Red Hat Enterprise Linux Server release 6.5 (Santiago)) version=$(cat /etc/issue|grep -e "Server") #OS architecture 硬件运行系统的机器 ID 号(x86_64) architecture=$(uname -m) #Kernel Release 操作系统的发行版号(3.2.35) kernelrelease=$(uname -r) #hostname 节点名称(xulianzhen) hostname=$(uname -n) #Internal IP 内网ip(192.168.15.128) internalip=$(hostname -I) #External IP 出口ip(123.58.141.68) externalip=$(curl -s http://ipecho.net/plain) #DNS(192.168.130.32) nameservers=$(cat /etc/resolv.conf | grep -E "\<nameserver[ ]+" | awk '{print $NF}') #check connected to Internet 查询是否连接互联网(Internet:Connected) ping -c 2 imooc.com &>/dev/null && echo "Internet:Connected" || echo "Internet:Disconnected" #check Logged In Users(查看当前登录用户) who>/tmp/who查看全部
-
free -m #查看当前系统内存使用情况,读取的是/proc/meminfo 里面的信息 #total : 代表全部的内存 #used : 已经使用的内存 #free : 剩余的内存 #shared : 共享内存 #buffers 和 cached : 代表文件打开的缓存 #-/+ buffers/cache : 代表应用占用内存使用情况 cache : 主要用于文件打开的缓存,使用最少使用原则(LRU) buffer: 分缓存主要用于目录项,inode节点等文件系 ,使用先进先出原则(FIFO) (cache过大,代表打开的文件数量多,打开文件较频繁;buffer过大代表inode节点过大) 系统使用内存 = total -free 应用使用内存 = total - free - cached - buffers 即 used - cached -buffers awk '/^MemTotal.*$/{total=$2}/^MemFree.*$/{free=$2}END{print (total-free)/1024}' /proc/meminfo awk '//{}' #//代表了,正则表达式在awk中如何使用 #awk{}中变量引用时不用加$符号,而且四则运算不用(())双括号查看全部
-
#OS type os=$(umame -o) #OS version version=$(cat /etc/issue|grep -e "Server") #OS architecture architecture=$(uname -m) #Kernel Release kernelrelease=$(uname -r) #hostname hostname=$(uname -n) #Internal IP #External IP查看全部
-
hao查看全部
-
1. cat /proc/meminfo 目录下可以看系统监控信息 2. awk执行中不能用echo,要用print 3. awk中的变量数值可以直接计算,不需要加$(),而且计算准确到浮点型 4. awk '/abc/{执行动作一}' 文件名: 指提取含有abc字符串的行,然后执行后面的动作 5. 注意在/proc/meminfo下截取"cached"发现结果有两个,要注意筛选查看全部
-
抄的: #!/bin/bash clear if [[ $# -eq 0 ]] #判断位置参数的个数是否为0 then reset_terminal=$(tput sgr0) #设置变量,每次调用它都会使屏幕的输出恢复正常 #Check OS Type os=$(uname -o) echo -e '\E[36m'"Operating System Type: " $reset_terminal $os #Check OS Release Version and Name os_name=$(cat /etc/issue) echo -e '\E[36m'"Check OS Release Version and Name: " $reset_terminal $os_name #Check Architecture architecture=$(uname -m) echo -e '\E[36m'"Check Architecture: " $reset_terminal $architecture #Check Kernel Release kernerrelease=$(uname -r) echo -e '\E[36m'"Check Kernel Release: " $reset_terminal $kernerrelease #Check Hostname hostname=$(uname -n) echo -e '\E[36m'"Check Hostname: " $reset_terminal $hostname #或者 echo $(HOSTNAME)查看全部
-
#!/bin/bash #系统内存分析脚本 clear if [[ $# -eq 0 ]] then #Define Variable reset terminal reset_terminal=$(tput sgr0) system_mem_usages=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024}' /proc/meminfo) app_mem_usages=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}/^Cached/{cached=$2}/Buffers/{buffers=$2}END{print (total-free-cached-buffers)/1024}' /proc/meminfo) echo -e '\E[32m'"Operating System Memuserages :" $reset_terminal $system_mem_usages echo -e '\E[32m'"Operating System App Memuserages :" $reset_terminal $app_mem_usages fi查看全部
-
if [ $# -eq 0 ]; then #$1,$2等等分别表示第一个、第二个参数 #$@, $*表示所有的参数 #$#表示位置参数的数目(对脚本来说,是运行脚本时所带的参数;对函数来说,是函数调用时传入的参数)。数值的比较用 -eq ,字符串的比较才用 = #脚本的意思就是判断是否有参数,如果没有的话执行then后面的命令查看全部
-
shell典型应用之系统信息及运行状态获取 脚本:system_monitor.sh 功能:提取操作系统信息(内核、系统版本、网络地址等),分析系统的运行状态(cpu负载、内存及磁盘使用率等) 1.脚本内容: #!/bin/bash clear if [[ $# -eq 0 ]] #判断位置参数的个数是否为0 then reset_terminal=$(tput sgr0) #设置变量,每次调用它都会使屏幕的输出恢复正常 #Check OS Type os=$(uname -o) echo -e '\E[36m'"Operating System Type: " $reset_terminal $os #Check OS Release Version and Name os_name=$(cat /etc/issue) echo -e '\E[36m'"Check OS Release Version and Name: " $reset_terminal $os_name #Check Architecture architecture=$(uname -m) echo -e '\E[36m'"Check Architecture: " $reset_terminal $architecture #Check Kernel Release kernerrelease=$(uname -r) echo -e '\E[36m'"Check Kernel Release: " $reset_terminal $kernerrelease #Check Hostname hostname=$(uname -n) echo -e '\E[36m'"Check Hostname: " $reset_terminal $hostname #或者 echo $(HOSTNAME)查看全部
-
#Check Internal IP internalip=$(hostname -I) echo -e '\E[36m'"Check Internal IP: " $reset_terminal $internalip #Check External IP externalip=$(curl -s http://ipecho.net/plain) echo -e '\E[36m'"Check External IP: " $reset_terminal $externalip #通过curl命令发出网络请求,返回自己的公网IP #Check DNS nameservers=$( cat /etc/resolv.conf grep -E "\<nameserver[ ]+" awk '{print $NF}') echo -e '\E[36m'"Check DNS: " $reset_terminal $nameservers #grep -E 相当于egrep,扩展正则;匹配以nameserver开头后面为空的字符串,打印$NF(空格)后面的字符串 #Check if connected to Internet or not ping -c 2 baidu.com &>/dev/null && echo "Internet:Connected" echo "Internet:Disconnected" #输出到空设备回收站中,不显示任何输出 #Check Logged In Users who>/tmp/who echo -e '\E[36m' "Logged In Users" $reset_terminal && cat /tmp/who rm -f /tmp/who fi查看全部
-
接下面笔记的代码 #Check Internal IP internalip=$(hostname -I) echo -e '\E[36m'"Check Internal IP: " $reset_terminal $internalip #Check External IP externalip=$(curl -s http://ipecho.net/plain) echo -e '\E[36m'"Check External IP: " $reset_terminal $externalip #通过curl命令发出网络请求,返回自己的公网IP #Check DNS nameservers=$( cat /etc/resolv.conf grep -E "\<nameserver[ ]+" awk '{print $NF}') echo -e '\E[36m'"Check DNS: " $reset_terminal $nameservers #grep -E 相当于egrep,扩展正则;匹配以nameserver开头后面为空的字符串,打印$NF(空格)后面的字符串 #Check if connected to Internet or not ping -c 2 baidu.com &>/dev/null && echo "Internet:Connected" echo "Internet:Disconnected" #输出到空设备回收站中,不显示任何输出 #Check Logged In Users who>/tmp/who echo -e '\E[36m' "Logged In Users" $reset_terminal && cat /tmp/who rm -f /tmp/who fi查看全部
-
shell典型应用之系统信息及运行状态获取 脚本:system_monitor.sh 功能:提取操作系统信息(内核、系统版本、网络地址等),分析系统的运行状态(cpu负载、内存及磁盘使用率等) 1.脚本内容: #!/bin/bash clear if [[ $# -eq 0 ]] #判断位置参数的个数是否为0 then reset_terminal=$(tput sgr0) #设置变量,每次调用它都会使屏幕的输出恢复正常 #Check OS Type os=$(uname -o) echo -e '\E[36m'"Operating System Type: " $reset_terminal $os #Check OS Release Version and Name os_name=$(cat /etc/issue) echo -e '\E[36m'"Check OS Release Version and Name: " $reset_terminal $os_name #Check Architecture architecture=$(uname -m) echo -e '\E[36m'"Check Architecture: " $reset_terminal $architecture #Check Kernel Release kernerrelease=$(uname -r) echo -e '\E[36m'"Check Kernel Release: " $reset_terminal $kernerrelease #Check Hostname hostname=$(uname -n) echo -e '\E[36m'"Check Hostname: " $reset_terminal $hostname #或者 echo $(HOSTNAME)查看全部
-
/dev/null 2>&1这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,即将产生的所有信息丢弃. command > file 2>file VS command > file 2>&1 首先 command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file中 command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.从IO效率上,前一条命令的效率要比后面一条的命令效率要低 关于shell中:>/dev/null 2>&1 详解 1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt 2:/dev/null 代表空设备文件 3:2> 表示stderr标准错误 4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1 5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null" 因此,>/dev/null 2>&1也可以写成“1> /dev/null 2> &1” PS:Command >/dev/null 2>&1 相当于stdout="/dev/null" stderr="$stdout" 这时,stderr也等于"/dev/null"了 结果是标准输出和标准错误都指向了/dev/null, 也就是所有的输出都被我们丢弃 Command 2>&1 >/dev/null 相当于stderr="$stdout" stderr指向了屏幕,因为stdout这时还是指向屏幕!stdout="/dev/null" stdout指向了/dev/null,但不会影响到 stderr的指向 结果是标准错误仍然被打印到屏幕上, 而标准输出被丢弃A=100; B=A和 B=A, A=100查看全部
-
内存中cache和buffer的区别查看全部
-
系统使用的内存和应用使用的内存的区别查看全部
举报
0/150
提交
取消