首页 > 系统相关 >shell编程之存储读写测试实战脚本

shell编程之存储读写测试实战脚本

时间:2023-08-22 10:55:24浏览次数:34  
标签:-% shell log 读写 编程 zabbix RW test sender

Shell编程是一种在命令行环境中编写程序的技术,常用于Linux和Unix系统。它主要使用Shell脚本语言来编写程序。Shell编程常用于系统管理、自动化任务、批处理等领域。

常用的Shell脚本语言包括Bash、Csh、Tcsh和Zsh等。Bash是最常用的Shell编程语言,它是大多数Linux和Unix系统的默认Shell。

Shell编程中,变量使用"$“来引用,变量赋值使用”="。Shell程序中可以使用多种内建命令和Unix工具,如grep、sed、awk等。

编写Shell脚本程序需要在文本编辑器中编写代码,并使用"chmod +x"命令给予可执行权限,最后使用"./"执行该脚本程序。

举个例子,在文本编辑器中编写如下代码,保存为"test.sh":

#!/bin/bash echo “Hello, World!”

使用如下命令给该脚本添加可执行权限:

chmod +x test.sh

然后,执行该脚本:

./test.sh

这样就能在终端中看到输出 “Hello, World!”

请注意,在Windows上不能直接执行sh脚本,但是可以通过在Windows子系统 Linux (WSL) 中执行


 

实战示例:

#!/bin/bash

log=/root/rw_test.log
test_dir=/test__remotehost_mount

r_dir1=01/suyan_nfs_remote
r_dir2=02/suyan_nfs_remote
r_dir3=03/suyan_nfs_remote
r_dir4=04/suyan_nfs_remote

zabbix_sender="/opt/aspire/product/zabbix/bin/zabbix_sender -z 30.153.1.77 -s"

host1=30.1.177.151
host2=30.1.177.152
host3=30.1.177.153
host4=30.1.177.154
read="time timeout 30 df -h"
write="time timeout 30 touch"

#test rw 30.1.177.151
function RW_151()
{

$read $test_dir$r_dir1 >> $log 2>&1 && $write $test_dir$r_dir1/$host1.txt >> $log 2>&1
if [ $? -eq 0 ];then
echo "RW.$host1 successfully `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host1 -k "$host1"_rwtest -o "0"
else
echo "RW.$host1 failed `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host1 -k "$host1"_rwtest -o "1"
fi
}

#test rw 30.1.177.152
function RW_152()
{
$read $test_dir$r_dir2 >> $log 2>&1 && $write $test_dir$r_dir2/$host2.txt >> $log 2>&1
if [ $? -eq 0 ];then
echo "RW.$host2 successfully `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host2 -k "$host2"_rwtest -o "0"
else
echo "RW.$host2 failed `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host2 -k "$host2"_rwtest -o "1"
fi
}

#test rw 30.1.177.153
function RW_153()
{
$read $test_dir$r_dir3 >> $log 2>&1 && $write $test_dir$r_dir3/$host3.txt >> $log 2>&1
if [ $? -eq 0 ];then
echo "RW.$host3 successfully `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host3 -k "$host3"_rwtest -o "0"
else
echo "RW.$host3 failed `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host3 -k "$host3"_rwtest -o "1"
fi
}

#test rw 30.1.177.154
function RW_154()
{
$read $test_dir$r_dir4 >> $log 2>&1 && $write $test_dir$r_dir4/$host4.txt >> $log 2>&1
if [ $? -eq 0 ];then
echo "RW.$host4 successfully `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host4 -k "$host4"_rwtest -o "0"
else
echo "RW.$host4 failed `date +%Y-%m-%d-%H:%M:%S`" >> $log
$zabbix_sender $host4 -k "$host4"_rwtest -o "1"
fi
}

#running function
RW_151
RW_152
RW_153
RW_154

标签:-%,shell,log,读写,编程,zabbix,RW,test,sender
From: https://www.cnblogs.com/Albert-M/p/17647979.html

相关文章

  • ASCII码-shellcode的技巧
    网上已经有成熟的工具了,所以就简单记录一下工具怎么用吧https://github.com/TaQini/alpha3https://github.com/veritas501/ae64.githttps://github.com/rcx/shellcode_encoder结合题目来看吧,没有开启NX保护,基本这类型题目九成九都是shellcode题程序一开始会让我们在bss段上......
  • GPU与CUDA C编程基本知识
    一、CPU与GPU的异同CPU:延迟导向内核,所谓延迟,指指令发出到得到结果中间经历的时间。GPU:吞吐导向内核,所谓吞吐量指单位时间内处理的指令数量。其适合于计算密集或者数据并行的场合。二、CUDA2.1简介CUDA(ComputeUnifiedDeviceArchitecture)是由英伟达公司2007年开始推出,初衷......
  • 项目部署_通过Shell脚本自动部署项目(设置静态ip)
       ......
  • 模拟Linux文件管理员系统-shell实现
    模拟Linux文件管理员系统-shell实现注:此脚本仅供学习使用,具体需要根据实际情况进行测试调整。1系统要求2脚本执行效果2.1管理员登录效果2.2普通用户登录效果2.3密码文件格式用空格隔开,从左往右依次为:用户名密码是否为管理员(1为管理员0为普通用户)是否被锁定(1......
  • 项目部署_通过Shell脚本自动部署项目(Shell脚本说明)
       ......
  • Shell编程及自动化运维实现
    LinuxShell编程及自动化运维实现  变量LinuxShell编程及自动化运维实现  判断LinuxShell编程及自动化运维实现  循环LinuxShell编程及自动化运维实现 数组和函数LinuxShell编程及自动化运维实现 三剑客LinuxShell编程及自动化运维实现 综合实战什么是Shell......
  • 项目部署_通过Shell脚本自动部署项目(操作步骤说明、安装git和maven)
          ......
  • A018 《BGM计算器》编程 源码
    一、课程介绍本节课学习新的数据类型float,结合if嵌套和比较运算符,实现一个BMI指数计算器。二、重难点解析浮点数float浮点数其实就是小数,使用float()方法可以把整数和内容为数字的字符串转换为浮点数。比较运算符在Python中,大于、小于等符号叫做比较运算符。比较运算经常......
  • conda init 导致的 powershell 启动缓慢的问题(Loading personal and system profiles
    文章目录一、问题描述二、问题溯源三、解决方案3.1测试3.2方案一:不在powershell中使用conda3.2方案二:需要时再在powershell中使用conda(推荐)四、powershell7特点一、问题描述powershell启动缓慢:每次启动都会加载很久的配置文件:Loadingpersonalandsystemprofilestookxxx......
  • CSAPP-Shell Lab总结
    提供的工具:parseline:获取参数列表char**argv,返回是否为后台运行命令(true)。clearjob:清除job结构。initjobs:初始化jobs链表。maxjid:返回jobs链表中最大的jid号。addjob:在jobs链表中添加jobdeletejob:在jobs链表中删除pid的job。fgpid:返回当前前台运行job的pid号。getjobp......