局域网网站怎么做,系统app定制开发,东莞电商网站公司,桂阳网站设计1、作业回顾
1.1、判断磁盘利用率
要求#xff1a;
判断磁盘的使用率#xff0c;如果超过了90%就警告
[rootNode1 sh]# vim disk_check.sh
#!/bin/bash
#Author By LiangGaRy
#2023年5月9日
#Usage:检测硬盘的使用率
###########################################
#定义一…1、作业回顾
1.1、判断磁盘利用率
要求
判断磁盘的使用率如果超过了90%就警告
[rootNode1 sh]# vim disk_check.sh
#!/bin/bash
#Author By LiangGaRy
#2023年5月9日
#Usage:检测硬盘的使用率
###########################################
#定义一个基础值就是用于判断硬盘是否超过某个值90
thred90#这里awk后面跟了一个int表示可以提取数值
for i in df -h |awk {print int($5)}
do#然后就进行比较和90的基础知识比较if [ $i -gt $thred ];thenecho warnningelseecho It is okfi
done这里可以考虑优化
优化的方向 1.它没有显示那个地方是ok的比如说是/的占用率是ok的要实现这个功能我们可以考虑awk在打印前面的内容
2.2、解压文件脚本
要求
写一个解压的脚本
SAVEIFS$IFS
IFS$(echo -en \n\b)function extract {if [ -z $1 ]; then# display usage if no parameters givenecho Usage: extract path/file_name.zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xzecho extract path/file_name_1.ext [path/file_name_2.ext] [path/file_name_3.ext]elsefor n in $doif [ -f $n ] ; thencase ${n%,} in*.cbt|*.tar.bz2|*.tar.gz|*.tar.xz|*.tbz2|*.tgz|*.txz|*.tar) tar xvf $n ;;*.lzma) unlzma ./$n ;;*.bz2) bunzip2 ./$n ;;*.cbr|*.rar) unrar x -ad ./$n ;;*.gz) gunzip ./$n ;;*.cbz|*.epub|*.zip) unzip ./$n ;;*.z) uncompress ./$n ;;*.7z|*.arj|*.cab|*.cb7|*.chm|*.deb|*.dmg|*.iso|*.lzh|*.msi|*.pkg|*.rpm|*.udf|*.wim|*.xar)7z x ./$n ;;*.xz) unxz ./$n ;;*.exe) cabextract ./$n ;;*.cpio) cpio -id ./$n ;;*.cba|*.ace) unace x ./$n ;;*)echo extract: $n - unknown archive methodreturn 1;;esacelseecho $n - file does not existreturn 1fidone
fi
}
IFS$SAVEIFS2、编写IP是否在线脚本
要求
函数 ping ip是否在线 一次性出现结果显示 当前在线的IP个数为当前不在线的个数
2.1、ip检测脚本v1
按照要求编写一个ip检测的脚本
定义一个 网段然后输出到显示屏幕
#这个是第一个脚本--这里仅仅是显示了当年前IP是否在线
[rootNode1 sh]# vim ip_check_v1.sh
#!/bin/bash
#2023年5月10日
#Author By LiangGaRy
#Usage:检测IP是否存活
##########################
#定义一个网段
str192.168.75.
for i in {1..25}
doip${str}${i}ping -c1 -w1 ${ip} /dev/nullif [ $? -eq 0 ];thenecho ${ip} is onlineelseecho ${ip} is offlinefi
done#执行脚本查看
[rootNode1 sh]# bash ip_check_v1.sh
192.168.75.1 is online
192.168.75.2 is online
192.168.75.3 is offline
..............明显第一个版本的脚本是不够完善
ip都输出到屏幕并没有归总并且显示给用户看于是就到了V2版本的
2.2、ip检测脚本v2
优化方向
把输出的脚本追加到一个文件当中然后统计文件的个数得出在线IP数
#改进版本--输出一个数值
[rootNode1 sh]# vim ip_check_v2.sh
#!/bin/bash
#2023年5月10日
#Author By LiangGaRy
#Usage:检测IP是否存活
##########################
str192.168.75.
for i in {1..25}
doip${str}${i}ping -c1 -w1 ${ip} /dev/nullif [ $? -eq 0 ];thenecho ${ip} is onlineecho ${ip} /root/online.txtelseecho ${ip} is offlineecho ${ip} /root/offline.txtfi
done
onlinecat /root/online.txt | wc -l
offlinecat /root/offline.txt | wc -l
echo 目前在线的IP总数为 ${online}
echo 目前不在线的IP总数为${offline}#检测脚本
[rootNode1 sh]# bash ip_check_v2.sh
.................
目前在线的IP总数为 2
目前不在线的IP总数为23这里又发现有问题
如果脚本执行两次则统计出来的数据会不准确假设文件之前就被编辑过有空格统计出来也是有问题于是就继续编写v3版本的脚本
2.3、ip检测脚本v3
考虑优化
如果一开始就有空行怎么说在一开始的时候就清空文件如果统计的命令换成排除空格就能解决问题
#第三次修改--这里考虑到会有重复因此在执行前就考虑文件
[rootNode1 sh]# vim ip_check_v3.sh
#!/bin/bash
#2023年5月10日
#Author By LiangGaRy
#Usage:检测IP是否存活
##########################
#一开始就选择清空两个文件/root/online.txt/root/offline.txt
str192.168.75.
for i in {1..25}
doip${str}${i}ping -c1 -w1 ${ip} /dev/nullif [ $? -eq 0 ];thenecho ${ip} is onlineecho ${ip} /root/online.txtelseecho ${ip} is offlineecho ${ip} /root/offline.txtfi
done#这里把命令换成了grep命令
onlinegrep -v ^$ /root/online.txt | wc -l
offlinegrep -v ^$ /root/offline.txt | wc -l
echo 目前在线的IP总数为 ${online}
echo 目前不在线的IP总数为${offline}#执行查看
[rootNode1 sh]# bash ip_check_v3.sh
.................
目前在线的IP总数为 2
目前不在线的IP总数为23总结
脚本的实现不是一次就好了的需要不断地更新优化不断地优化才最后得出
2.4、sort命令讲解
作用sort将文件的每一行作为一个单位相互比较比较原则是从首字符向后依次按ASCII码值进行比较最后将他们按升序输出
语法sort 选项 文件
选项
-c检查文件是否按照顺序进行排序-d排序时处理英文字母数字及空格字母外忽略其他字符-f排序将小写字母视为大写字母-M将前面的3个字母依照月份缩写进行排序-r以相反的顺序进行排序-n依照数值的大小进行排序--o排序后存入指定的文件-t指定一个用来区分键位置字符-k后面跟数字指定按第几列进行排序
#如果不加参数--直接默认按照首字母排序
[rootNode1 sh]# sort /etc/passwd | head -3
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin#倒序排列
[rootNode1 sh]# sort -r /etc/passwd |head -3
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin#-t指定分隔符的位置-k 指定按第几列进行排序 -r 是倒叙#查看文件--然后指定分隔符为按照第三列信息倒叙排列
[rootNode1 ~]# cat passwd | sort -t : -k 3 -r | head -3
nobody:x:99:99:Nobody:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin#sort还有去重功能#准备一个模板文件
[rootNode1 ~]# vim aa.txt
aa
bb
cc
aa
bb#去重-u
[rootNode1 ~]# sort -u aa.txt aa
bb
cc#按照数值的方式排序--sort命令默认会觉得10 比2 小#准备素材
[rootNode1 ~]# vim aa.txt
1
2
3
10
20#然后按照数值大小排序--如果不带参数
[rootNode1 ~]# sort aa.txt
1
10
2
20
3#带上参数n
[rootNode1 ~]# sort -n aa.txt
1
2
3
10
20#忽略空白字符
[rootNode1 ~]# sort -b -n aa.txt
1
2
3
10
20#合并文件
[rootNode1 ~]# sort -m aa.txt bb.txt
1
2
3
10
20
aa
bbcc#结合-o可以重定向到一个文件当中
[rootNode1 ~]# sort -m aa.txt bb.txt -o cc.txt
[rootNode1 ~]# cat cc.txt
1
2
3
10
20
aa
bbcc2.5、Linux 内核参数说明
consoletty0:用来指定 Linux 内核启动时使用的控制台设备crashkernel384这是指在 Linux 内核启动时预留 384MB 的内存作为用于系统崩溃时的内存转储crash dumpl1tfoff “L1TF代表级联缓存失效”是一种针对Intel处理器的漏洞可以让攻击者访问系统中的敏感信息nospec_store_bypass_disablenospec_store_bypass_disable 是 Linux 内核中的一个安全补丁用于防止 Spectre 攻击。rootdelay10 rootdelay10 是在 Linux 内核启动时传递给内核的一个参数它的作用是指定根文件系统的延迟时间fsck.repairyesfsck.repairyes 是 Linux 文件系统检查fsck命令的一个选项。当这个选项被设置为 yes 时fsck 会在检查文件系统时自动修复发现的错误。net.ifnames0net.ifnames0 是 Linux 内核启动参数之一用于禁用网络接口的动态命名。rootwaitrootwait是一个内核启动参数它告诉内核等待根文件系统可用后再启动系统。当内核启动时它需要挂载根文件系统来启动系统iommuptptioffIOMMU 相关的选项spectre_v2off用于禁用针对 Spectre 漏洞的特定修复mitigationsoff用于关闭一些内核的安全补丁和保护措施。no_stf_barrier用于禁用同步线程的强制屏障biosdevname0用于控制 BIOS 设备名称的生成。consolettyS0,115200 指定了 Linux 内核将控制台输出重定向到串口 ttyS0并且设置了波特率为 115200。fsck.modeforce制运行 fsck 工具来检查文件系统
3、prometheus安装
3.1、prometheus介绍
简介
prometheus是一个监控服务支持数据采集 数据存储数据库、文本数据分析数据展示shell grafana支持数据告警–钉钉、邮件等方式监控CPU 内存、网络、磁盘、数据等等
zabbix和prometheus都是一款监控服务
3.2、prometheus安装
使用源码包安装方式
准备源码包解压包安装包prometheus安装完成后不需要任何配置都可以支持页面展示
#准备好prometheus的包
[rootNode1 ~]# cd /usr/local/src/
[rootNode1 src]# ls prometheus-2.37.1.linux-amd64.tar.gz
prometheus-2.37.1.linux-amd64.tar.gz#解压源码包
[rootNode1 src]# tar -xf prometheus-2.37.1.linux-amd64.tar.gz
[rootNode1 src]# mv prometheus-2.37.1.linux-amd64 /root/prometheus
[rootNode1 src]# cd /root/prometheus/#查看一下内容
[rootNode1 prometheus]# ls
console_libraries LICENSE prometheus promtool
consoles NOTICE prometheus.yml#直接启动
[rootNode1 prometheus]# ./prometheus #查看版本号
[rootNode1 prometheus]# ./prometheus --version
prometheus, version 2.37.1 (branch: HEAD, revision: 1ce2197e7f9e95089bfb95cb61762b5a89a8c0da)build user: root3caaaea7ba87build date: 20220912-12:42:39go version: go1.18.6platform: linux/amd64#查看prometheus支持什么命令
[rootNode1 prometheus]# ./prometheus --help#并且可以统计
[rootNode1 prometheus]# ./prometheus --help | wc -l
163#查看9090端口可以看到默认的端口
[rootNode1 prometheus]# ./prometheus --help | grep 9090--web.listen-address0.0.0.0:9090
#然后直接更变端口启动
[rootNode1 prometheus]# ./prometheus --web.listen-address0.0.0.0:888浏览器直接访问
prometheus默认的端口号就是9090浏览器访问http://192.168.75.131:9090/ Linxu当中如果修改配置文件
给一个变量赋值重启服务后重新加载配置文件等于重新制定了文件的inode号
#查看一个文件i号
[rootNode1 prometheus]# ls -i prometheus.yml
34623586 prometheus.yml#修改配置文件后
[rootNode1 prometheus]# vim prometheus.yml
# my global config
..........static_configs:- targets: [localhost:888]#再次查看
[rootNode1 prometheus]# ls -i prometheus.yml
34623594 prometheus.yml