shell编程之存储读写测试实战脚本
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编程之存储读写测试实战脚本的更多相关文章
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
- shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机
shell编程系列25--shell操作数据库实战之备份MySQL数据,并通过FTP将其传输到远端主机 备份mysql中的库或者表 mysqldump 常用参数详解: -u 用户名 -p 密码 -h ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- Shell编程-05-Shell中条件测试与比较
目录 Shell脚本条件测试 Shell文件测试 Shell字符测试 Shell整数测试 Shell逻辑测试 Shell条件测试总结 Shell脚本条件测试 在Shell脚本中各种条件结构和流 ...
- Linux Shell编程(19)——测试与分支
case和select结构在技术上说不是循环,因为它们并不对可执行的代码块进行迭代.但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.在代码块中控制程序分支case (in ...
- Shell编程案例:修改运维脚本输出效果
1. 需求:每日运维检查脚本dailymonitor.sh显示对服务器测试结果,其中命令 zabbix_get -s 192.168.111.21 -p 10050 -k "net.tcp. ...
- shell编程实战总结
最近复习一下shell,顺便高级进阶一下,之前写脚本能简单尽量简单来,发现好多高深的东西还是没有理解,因此在这里记录一下整个过程并做相应的总结. 通过上代码的方式来介绍,后续可能会调整相应的排版 1. ...
- 基于Linux系统的Shell编程-基础篇
1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...
随机推荐
- 2021-04-04:给定一个非负数组arr,和一个正数m。 返回arr的所有子序列中累加和%m之后的最大值。
2021-04-04:给定一个非负数组arr,和一个正数m. 返回arr的所有子序列中累加和%m之后的最大值. 福大大 答案2021-04-04: 自然智慧即可. 1.递归,累加和. 2.动态规划,累 ...
- Selenium - 浏览器配置(1) - 忽略证书错误提示
Selenium - 浏览器配置 忽略证书错误提示 有时候我们访问一些地址,会提示证书私密连接告警信息如下: 如果我们每次要点击高级来忽略私密连接,那就很麻烦: 在谷歌浏览器可以增加忽略证书错误问题, ...
- Django4全栈进阶之路20 项目实战(在线报修):项目需求分析
为了实现一个在线报修系统,您可以按照以下步骤进行: 创建Django项目和应用 使用Django的命令行工具创建一个Django项目,并在该项目中创建一个名为"RepairApp" ...
- Rocky 9 Linux 平台 vim 9.0 源码包编译安装踩坑记录
目录 vim 9.0 部署准备环境 vim 9.0 源码包正式部署 vim 9.0 初体验 plug-vim 安装插件 在上一篇 <vim入门实战> 篇,我并没有介绍 Linux 平台源码 ...
- for循环原理补充、生成器对象、yield冷门用法、生成器表达式的面试题、常见内置函数
目录 一.for循环原理补充 二.生成器对象 (1).自定义生成器对标range功能(一个参数 两个参数 三个参数 迭代器对象) 三.yield冷门用法 (1).yield与return的对比 四.生 ...
- 【编程日记】搭建PyCharm集成开发环境
0.相关确定 本教程使用的版本号为专业版PyCharm 2022.3.2,如果您是初学者,为了更好的学习本教程,避免不必要的麻烦,请您下载使用与本教程一致的版本号. 1.PyCharm的下载 官网下载 ...
- 流量劫持 —— GZIP 页面零开销注入 JS
前言 HTTP 代理给页面注入 JS 是很常见的需求.由于上游服务器返回的页面可能是压缩状态的,因此需解压才能注入,同时为了节省流量,返回下游时还得再压缩.为了注入一小段代码,却将整个页面的流量解压再 ...
- 推送服务接入指导(HarmonyOS篇)
消息推送作为App运营日常使用的用户促活和召回手段,是与用户建立持续互动和连接的良好方式.推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道,本文旨在介绍Harmo ...
- 一篇讲懂Java运行类型、编译类型和多态(面向对象语言精髓之一)
对象:运行类型.编译类型和多态 1.搞清楚面向对象的运行类型和编译类型就掌握了对象的精髓,我们用举个例子 class Father { Father() { System.out.println(&q ...
- 【.NET源码解读】深入剖析中间件的设计与实现
.NET本身就是一个基于中间件(middleware)的框架,它通过一系列的中间件组件来处理HTTP请求和响应.在之前的文章<.NET源码解读kestrel服务器及创建HttpContext对象 ...