shell 简单且常用的几种

这篇具有很好参考价值的文章主要介绍了shell 简单且常用的几种。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、配置环境的shell脚本

 二、系统资源脚本

一、要求

二、脚本内容

三、脚本解析

四、赋权并验证

三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本

一、第一种方法

二、验证

三、第二种方法

四、验证

四、查看网卡实时流量脚本

一、编辑脚本

 二、验证结果

五、把当前目录(包含子目录)下所有后缀为 ".sh" 的文件后缀变更为 ".shell",之后删除每个文件的第二行。

一、编写脚本

二、验证

六、统计访问最多的十个IP

一、首先模拟创建IP、编写脚本

二、验证ip生成结果

七、磁盘使用率检测脚本

一、首先lsblk 查看一下磁盘情况

二、进入编写脚本

八、备份当前日期文件

一、编写脚本

二、脚本结果验证


因新接触shell脚本,所以只能一直统计和手机不一样的shell脚本,水平有限,希望可以帮助到大家如果有错误的地方欢迎大家及时指出,我们共同进步,(#^.^#)。

一、配置环境的shell脚本

systemctl stop firewalld

systemctl disable firewalld

systemctl stop NetworkManager

systemctl disable NetworkManager

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

cat << e > /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet

BOOTPROTO=static

NAME=ens33

DEVICE=ens33

ONBOOT=yes

IPADDR=$1

PREFIX=24

GATEWAY=192.168.115.2

DNS1=192.168.115.2

e

systemctl restart network

shell 简单且常用的几种,服务器,linux,apache

 将此脚本放入终端中,后续输入想设置的IP 则成功配置环境并设置ip 

shell 简单且常用的几种,服务器,linux,apache

 结果查看

shell 简单且常用的几种,服务器,linux,apache

 二、系统资源脚本

一、要求

1. 编写一个脚本来监控 CPU 使用率、内存使用率、磁盘空间等系统资源。
2. 实时显示系统资源的使用情况,并根据预设的阈值提供警报功能。
3. 脚本应该可以在后台运行,每隔一定时间自动更新资源状态。
4. 提供一个简单的用户界面(命令行或图形界面),方便用户查看当前系统资源的情况。

二、脚本内容

#!/bin/bash
#lsq
#监测脚本
while true
do
times=10
#磁盘
disk=$(df -Th | awk '{ print $6 }' | awk 'NR==6' |cut -d "%" -f 1)
#内存
mem=$(free -m | grep "Mem" | awk '{ printf "%.0f", $3/$2 * 100 }')
#cpu
cpu=$(top -n 1 | grep "Cpu(s)" | awk '{ printf "%.0f", $2+$4 }')
#显示监测情况:
        echo "******************"
        echo "CPU使用率$cpu %"
        echo "内存使用率$mem %"
        echo "磁盘使用率$disk %"
        echo "******************"
#——————————————————————————————————
disk1=80
mem1=80
cpu1=80
if [ "$mem" -ge "$mem1" ];then
        echo "内存使用已到$mem %,请注意" && exit 0
fi
if [ $cpu -ge $cpu1 ];then
        echo "CPU使用已到$cpu %,请注意" && exit 0
fi
if [ $disk -ge $disk1 ];then
        echo "磁盘使用已到$disk ,请注意" && exit 0
fi
sleep $times
done

三、脚本解析

这是一个监测脚本,用于监测系统的磁盘、内存和CPU使用率。下面是对脚本中各部分的解析:

  1. #!/bin/bash:指定脚本采用Bash解释器。

  2. #mpy:注释,用于说明脚本的用途。

  3. while true:一个无限循环,表示脚本会一直执行下去。

  4. dotimes=10:设置一个变量dotimes的值为10。

  5. disk=$(df -Th | awk '{ print $6 }' | awk 'NR==6' |cut -d "%" -f 1):使用df命令获取磁盘信息,并使用awk和cut命令提取出磁盘使用率的数值部分。

  6. mem=$(free -m | grep "Mem" | awk '{ printf "%.0f", $3/$2 * 100 }'):使用free命令获取内存信息,再使用awk命令计算内存使用率百分比。

  7. cpu=$(top -n 1 | grep "Cpu(s)" | awk '{ printf "%.0f", $2+$4 }'):使用top命令获取CPU信息,并使用awk命令计算CPU使用率百分比。

  8. echo "******************":打印分隔线。

  9. echo "CPU使用率$cpu %":打印CPU使用率。

  10. echo "内存使用率$mem %":打印内存使用率。

  11. echo "磁盘使用率$disk %":打印磁盘使用率。

  12. echo "******************":打印分隔线。

  13. disk1=80:设置一个变量disk1的值为80,表示磁盘使用率的阈值。

  14. mem1=80:设置一个变量mem1的值为80,表示内存使用率的阈值。

  15. cpu1=80:设置一个变量cpu1的值为80,表示CPU使用率的阈值。

  16. if [ "$mem" -ge "$mem1" ]; then:如果内存使用率大于等于阈值mem1,则执行下面的命令。

  17. echo "内存使用已到$mem %,请注意" && exit 0:打印内存使用率达到阈值的警告信息,并退出脚本。

  18. if [ $cpu -ge $cpu1 ]; then:如果CPU使用率大于等于阈值cpu1,则执行下面的命令。

  19. echo "CPU使用已到$cpu %,请注意" && exit 0:打印CPU使用率达到阈值的警告信息,并退出脚本。

  20. if [ $disk -ge $disk1 ]; then:如果磁盘使用率大于等于阈值disk1,则执行下面的命令。

  21. echo "磁盘使用已到$disk ,请注意" && exit 0:打印磁盘使用率达到阈值的警告信息,并退出脚本。

  22. sleep $times:暂停脚本执行一段时间,时间长度由变量times指定。

  23. done:结束while循环。

shell 简单且常用的几种,服务器,linux,apache

 shell 简单且常用的几种,服务器,linux,apache

四、赋权并验证

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本

一、第一种方法

#!/bin/bash

Mem_all=$(free -m | awk '/Mem/ {print $2}')
Mem_used=$(free -m | awk '/Mem/ {print $3}')
Mem_free=$(free -m | awk '/Mem/ {print $4}')
Mem_usage=$(free -m | awk '/Mem/ {printf "%.0f", $3/$2 * 100}')

echo "当前内存总共: $Mem_all MB"
echo "当前内存已使用: $Mem_used MB"
echo "当前剩余: $Mem_free MB"
echo "当前物理内存使用率: $Mem_usage%" 

shell 简单且常用的几种,服务器,linux,apache

 shell 简单且常用的几种,服务器,linux,apache

二、验证

shell 简单且常用的几种,服务器,linux,apache

三、第二种方法

#!/bin/bash

# 获取内存信息
mem_info=$(free -m | awk 'NR==2{print}')

# 获取内存总量、已使用量和剩余量(以兆字节为单位)
total=$(echo $mem_info | awk '{print $2}')
used=$(echo $mem_info | awk '{print $3}')
free=$(echo $mem_info | awk '{print $4}')

# 计算内存使用率
usage_percent=$(echo "scale=2; $used / $total * 100" | bc)

# 打印信息
echo "物理内存总量:${total}MB"
echo "已使用内存:${used}MB"
echo "剩余内存:${free}MB"
echo "内存使用率:${usage_percent}%"

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

四、验证

shell 简单且常用的几种,服务器,linux,apache

四、查看网卡实时流量脚本

一、编辑脚本

#!/bin/bash
NIC=ens33
echo -e " In ------ Out"
while true; do
        OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)
        OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
sleep 1
        NEW_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)
        NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)
        IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s")
        OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s")
        echo "$IN $OUT"
        sleep 1
done

shell 简单且常用的几种,服务器,linux,apache
shell 简单且常用的几种,服务器,linux,apache

 二、验证结果

shell 简单且常用的几种,服务器,linux,apache

五、把当前目录(包含子目录)下所有后缀为 ".sh" 的文件后缀变更为 ".shell",之后删除每个文件的第二行。

先查看目录下的后缀文件

shell 简单且常用的几种,服务器,linux,apache

一、编写脚本

 #!/bin/bash

ALL_SH_FILE=$(find . -type f -name "*.sh")

        for file in ${ALL_SH_FILE[*]}

do

        filename=$(echo $file | awk -F'.sh' '{print $1}')

        new_filename="${filename}.shell"

        mv "$file" "$new_filename"

        sed -i '2d' "$new_filename"

done

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

二、验证

shell 简单且常用的几种,服务器,linux,apache

六、统计访问最多的十个IP

一、首先模拟创建IP、编写脚本

vim /makeiplog.sh

#!/bin/bash
for i in {1..30};do
        host=$[$RANDOM % 10]
        host1=$[$RANDOM % 10]

        echo "192.168.$host1.$host" >> /root/ip.log
done

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

赋权并启动

shell 简单且常用的几种,服务器,linux,apache

二、验证ip生成结果

 输入 vim ip.log 查看

shell 简单且常用的几种,服务器,linux,apache

输入命令 

awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' ip.log |sort -k2 -nr |head -10

shell 简单且常用的几种,服务器,linux,apache

 显示结果

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' ip.log |sort -k2

升序显示

shell 简单且常用的几种,服务器,linux,apache

shell 简单且常用的几种,服务器,linux,apache

七、磁盘使用率检测脚本

一、首先lsblk 查看一下磁盘情况

shell 简单且常用的几种,服务器,linux,apache

 echo fdisk.sh 创建

二、进入编写脚本

shell 简单且常用的几种,服务器,linux,apache

#!/bin/bash
# 截取IP
IP=`ifconfig eth0 |awk -F " " 'NR==2{print $2}'`
# 定义使用率,并转换为数字
SPACE=`df -Ph |awk '{print int($5)}'`
for i in $SPACE
do
if [ $i -ge 80 ]
then
echo "$IP的磁盘使用率已经超过了80%,请及时处理"
fi
done

shell 简单且常用的几种,服务器,linux,apache

 shell 简单且常用的几种,服务器,linux,apache

授权、并验证结果

shell 简单且常用的几种,服务器,linux,apache

 如果把脚本内容改为90则,验证的时候会提示超过百分之九十

shell 简单且常用的几种,服务器,linux,apache

 ./fdisk.sh 验证

shell 简单且常用的几种,服务器,linux,apache

八、备份当前日期文件

一、编写脚本

#!/bin/bash
#一月前
historyTime=$(date "+%Y-%m-%d %H" -d '1 month ago')
echo ${historyTime}
historyTimeStamp=$(date -d "$historyTime" +%s)
echo ${historyTimeStamp}
#一周前
date_this_month=`date +%Y%m01`
#一天前
date_today=`date -d '1 day ago' +%Y%m%d`

这是一个Bash脚本,下面是对每个部分的解释:

  1. historyTime=$(date "+%Y-%m-%d %H" -d '1 month ago'):获取一月前的日期和时间,并将其存储在变量historyTime中。date命令的-d选项用于指定日期,"+%Y-%m-%d %H"表示输出格式为年-月-日 小时。

  2. echo ${historyTime}:打印变量historyTime的值,即一月前的日期和时间。

  3. historyTimeStamp=$(date -d "$historyTime" +%s):将变量historyTime转换成时间戳格式并存储在变量historyTimeStamp中。date命令的-d选项用于指定日期,+%s表示输出时间戳。

  4. echo ${historyTimeStamp}:打印变量historyTimeStamp的值,即一月前的时间戳。

  5. date_this_month=date +%Y%m01``:获取当月的年和月,并在末尾添加"01",表示当月的第一天。结果存储在变量date_this_month中。

  6. date_today=date -d '1 day ago' +%Y%m%d``:获取昨天的日期,并以年月日的格式存储在变量date_today

这段脚本的目的是获取一月前的日期和时间,并将其转换成时间戳格式。然后,获取当月的第一天的日期和昨天的日期。

shell 简单且常用的几种,服务器,linux,apache

二、脚本结果验证

root@localhost ~]# ./jiaoben.sh 
2023-07-29 21
1690635600
shell 简单且常用的几种,服务器,linux,apache文章来源地址https://www.toymoban.com/news/detail-660453.html

到了这里,关于shell 简单且常用的几种的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PostgreSQL 查看服务器版本的几种方法

    本文介绍一下查看 PostgreSQL 服务器版本的几种方法。 如果已经连接到 PostgreSQL 服务器,可以执行以下查询语句获取服务器版本信息: 以下是一个返回结果的示例: 如果只需要获取简单的服务器版本号,可以利用配置选项 server_version: 以下是一个输出示例: 另外,配置选项

    2024年02月11日
    浏览(63)
  • MacBook 往服务器上传、下载文件的几种操作

    往服务器传文件、下载文件有很多种方法,可以使用scp、rsync或者rs/sz MacBook上的rz和sz 配置起来比较麻烦 这里就不说了 另外 研发和测试同学可能对于scp命令和rsync命令并不了解 这里也不说了 这里直说两种图形化界面的工具 通过jumpserver登录服务器后 可以简单快速实现上传和

    2024年02月16日
    浏览(64)
  • MySQL客户端和服务器进程通信的几种方式

    真实环境中,数据库服务器进程和客户端进程可能运行在不同的主机中,它们之间必须通过网络来进行通讯。MySQL采用TCP作为服务器和客户端之间的网络通信协议。在网络环境下,每台计算机都有一个唯一的IP地址,如果某个进程有需要采用TCP协议进行网络通信方面的需求,可

    2024年04月24日
    浏览(48)
  • Shell 分析服务器日志常用命令

    1、查看有多少个IP访问: 日志文件的第一列是IP地址 2、查看某一个页面被访问的次数: 3、查看每一个IP访问了多少个页面: 4、将每个IP访问的页面数进行从小到大排序: 5、查看某一个IP访问了哪些页面: 6、去掉搜索引擎统计的页面: 7、查看2015年8月16日14时这一个小时内

    2024年02月14日
    浏览(42)
  • axios 多个baseURL配置、实现不同前缀代理到不同的服务器的几种方式

    前言: 在开发中,有可能遇到每部分的功能的需要调用另一台服务器的地址。这个时候就需要设置不同的请求前缀首先代理到不同的服务器地址。 一、axios封装实例以及代理:(不是完整的封装实例,重点在于baseURL的区别) 文件路径:/CMDB/src/utils/request.js 代理的时候有两个前

    2024年02月04日
    浏览(40)
  • Windows的几种常用反弹shell方法

    简介:shell类似于DOS下的COMMAND.COM和后来的cmd.exe,它接收用户命令,然后调用相应的应用程序,也可以通俗的说是命令执行环境。分为交互式shell,与非交互式shell。 交互shell就是shell等待你的输入,并且立即执行你提交的命令,这种模式被称作交互式是因为shell与用户进行交互

    2024年02月12日
    浏览(46)
  • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载

    Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序,扩展名为.sh。 2、如何编写shell脚本: 文本编辑器(可以使用

    2024年02月03日
    浏览(73)
  • 远程连接银河麒麟高级服务器操作系统V10SP1的几种方法(命令行远程+图形化远程)

    服务端 OS环境:银河麒麟高级服务器操作系统V10SP1(x86_64) 确认sshd服务处于运行状态 [root@localhost ~]# systemctl status sshd 确认防火墙已经放行SSH服务 [root@localhost ~]# firewall-cmd --list-all 备注:如果系统没有放行ssh服务,或者ssh端口号被修改,则需要重新放行ssh服务或者新的ssh端口

    2024年02月09日
    浏览(208)
  • Linux&Shell--多服务器自动登录连接

    sshpass 是一个命令行工具,用于自动化SSH密码认证。它通常在脚本或自动化任务中使用,其中您需要提供密码以建立SSH连接,而无需用户干预。可以直接将密码作为命令行参数或通过文件提供,以便在建立SSH连接时自动输入密码。这对于需要自动化处理SSH连接的任务非常有用

    2024年02月03日
    浏览(60)
  • (六)关于Linux中服务器磁盘爆满问题的几个解决思路

    在监控服务器性能的时候,发现服务器的磁盘占用很大,几乎快要爆满,具体的表现可能如下: 1、应用服务访问卡顿甚至失败; 2、数据库访问失败; 3、文件上传失败 等等 通过命令 df -h 查看磁盘占用情况,发现如下: 这里的占用是清除过的,所以并不算特别高。 这种现

    2024年02月04日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包