Shell编程实战

脚本编程步骤

脚本编程一般分为以下几个步骤:
需求分析:根据系统管理的需求,分析脚本要实现的功能、功能实现的层次、实现的命令与语句等;
命令测试:将要用到的命令逐个进行测试,以决定使用的选项、要设置的变量等:
脚本编程:将测试好的命令写入到脚本文件中,并通过各种语句将命令执行的结果保存、判断或者发出报警等;
测试调优:对脚本进行测试,并根据结果进行优化,建议一边编程一边调试以减少错误
的发生。

MAC记录与端口扫描脚本

需求描述

编写名为system.sh 的脚本,记录局域网中各主机的 MAC 地址,保存到/etc/ethers 文
件中;若此文件已存在,应先转移进行备份;每行一条记录,第1列为IP地址,第2列为对应的 MAC 地址。
检查有哪些主机开启了匿名 FTP 服务,扫描对象为/etc/ethers 文件中的所有 IP 地址,扫描的端口为 21。

实现步骤

开发系统监控脚本

需求描述

编写名为 sysmon.sh 的 Shell 监控脚本。
监控内容包括 CPU 使用率、内存使用率、根分区的磁盘占用率。
百分比只需精确到个位,如7%、12%、23%等。
出现以下任一情况时告警:磁盘占用率超过 90%、CPU 使用率超过 80%、内存使用率超过 90%,告警邮件通过 mai 命令发送到指定邮箱。
结合 crond 服务,每半小时执行一次监控脚本。

实现步骤

编写shell监控脚本

测试sysmon。sh脚本的执行情况

首先确认有可用的邮件服务器(如Postfx、Sendmail 等),然后调低监控值,执行sysmon.sh 脚本进行测试。

然后查收 root@localhost的邮箱,确认告警邮件内容。

设置crontab计划任务

首先确认系统服务crond已经运行

添加crontab计划任务配置,每半个小时调用一次sysmons.sh脚本程序

脚本综合案例

案例概述

KGC公司的阿里云账户内有两台空闲的ECS(服务器),现要使用这两台服务器搭建一组游戏区组,搭建之前有一些初始化及配置操作,要求写一个自动化部署的Shell脚本来完成这些任务,并通过 Shell 脚本来完成FTP的安装和配置。

案例环境

案例需求

两台机器分别为A和 B,它们的内网IP 分别为192.168.8.8和 192.168.8.9,操作系统都是 CentOS7.3,系统分区都在/dev/sda上面,同时B上面还有一块新添加的磁盘/dev/sdb,该磁盘未被格式化和分区。具体要求如下所示。
(1)Shel脚本要求只在A上运行,完成所有脚本任务;
(2)Shell 脚本要求完成B的/dev/sdb 磁盘分区格式化并挂载到/data目录:
(3)Shell脚本要求完成A和B的系统初始化,对系统的初始化要求完成如下内容:
①常用软件包的安装,如wget、vim、Irzsz、net-tools、gcc;②)修改文件描述符至 65535:
③检查系统是否为en US.UTF8编码,如果不是则改为该编码,要有检查步骤:④修改 ssh 默认端口 22 为63008:
⑤禁用 root 登录,添加普通用户 bdqn 并设置密码为 bdqn2019,同时配置 sudo权限;
⑥添加行为审计,记录用户操作的命令及对应时间:
⑦添加开启防火墙功能,只允许公网IP 2.2.2.2连接ssh端口、应用端口 6000 和873 对所有开放,内网192.168.8.0/24 不限制,同时外部网络禁 ping。
(4)Shel 脚本要求在A上通过脚本实现 vsfpd的安装及用户添加,具体要求如下:①添加一个 admin 用户:
②)通过循环的方式实现添加 10个只可以下载的用户:
③vsftpd 正常启动提供服务:
④)虚拟用户均不允许登录系统,并且使用fp时会被锁定在指定目录内不可进入系统的其他目录。

脚本实现步骤

(1)编写初始化脚本sysfirst.sh
该脚本实现了系统的初始化,因为A和B都需要进行初始化,并且B机器还要进行分区和格式化,所以在脚本的开头做了判断,如果是A执行,就不执行格式化操作,如果是B执行,要进行B的格式化操作。

脚本先安装了一些常规软件,检测了系统的编码类型,如果不是 UTF-8的则修改为UTF-8编码,接着对 SSH的安全方面进行了一些优化,针对登录系统的用户还有行为审计,对用户的登录和操作命令进行记录供后续查找问题和审计使用,防火墙使用的是iptables,配置的规则提前写入iptables 文件内,然后覆盖服务器上现有文件/etc/sysconfig/iptables,之后再重启 iptables 服务完成配置。
(2)编写 vsftp 安装配置脚本
该脚本实现了 vsftp的安装和配置,添加了用户及对虚拟用户的配置,该脚本也是被入口脚本文件调用使用的。

(3)编写入口脚本
该脚本是整个案例的入口,作为入口脚本,在脚本的开头要先定义B机器的IP地址和密码,然后在进行执行完成相关的功能配置。

脚本先在A机器上面远程对 B进行磁盘分区,采用expect方式解决交互的问题,接着将初始化脚本 sysfirst.sh 拷贝到B机器,并通过 expect 方式执行初始化,然后在 A上面执行 ttp 安装配置脚本,并在本机执行初始化脚本,来完成所有需求。
(4)脚本的测试执行
脚本的执行需通过入口脚本来执行,并确保A和B机器上面都安装了expect,具体执行如下。

至此,综合脚本案例执行完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/752513.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

庆祝东兴市金顺心贸易有限公司代理越南三原竹系列产品五周年

🎉庆祝金顺心贸易代理越南三原竹系列产品五周年!这五年,我们共同成长,每一份产品都承载着越南的美味与匠心。感恩有你们,未来的路,我们继续携手前行,品味更多美好!🥢&…

电子名片小程序源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 电子名片小程序源码系统是一款基于前后端分离架构的综合性平台,旨在为用户提供一个集销售名片和企业商城于一体的解决方案。该系统采用先进的技术手段,实现了个性化名片设计、便捷的销售功能、企业商城模块等一系列实用功能。同时,…

vue-cli 搭建项目

创建 router 目录 在一个.js文件中添加 打开外部命令 打开外部命令后,在指令栏输入npm i vue-router3.5.3 ,等待下载 下载完成后 在 main.js 中配置路由 输入这些后,基本的配置就实现了 最后进行测试,验证是否配置 或者打开外部命…

springcloud第4季 分布式事务seata作用服务搭建1

一 seata作用 1.1 seata简介 1.seata是一款解决分布式事务的解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 1.2 seata的术语 一个中心:全局事务id,xid,在调用服务链路的上下文中进行传播。TC(Transa…

iPhone怎么恢复删除的数据?几款顶级iPhone数据恢复软件

从iOS设备恢复数据。 对于任何数据恢复软件来说,从iOS设备恢复数据都是一项复杂的任务,因为Apple已将众多数据保护技术集成到现代iPhone和iPad中。其中包括硬件加密和文件级加密。iOS 上已删除的数据只能通过取证文件工件搜索来找到,例如分析…

最新扣子(Coze)实战案例:图像流工具之空间风格化,完全免费教程

🧙‍♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完全免费学习。 👀 关注斜杠君,可获取完整版教程。👍&#x1f3f…

EHS,制造业安全绿色生产的隐形守护神

当我们提到EHS,可能很多人会稍感陌生,毕竟它不是一个日常生活中经常提及的词汇。但实际上,EHS在我们的生活和工作中扮演着极其重要的角色,尤其对制造业而言更是可持续发展经营管理的重中之重。 一、EHS是什么意思? E…

vue项目内网部署流程

由于第一次部署,也是第一次自己用 Nginx , 百度了很久,没有看到想看的步骤,所以作此文以记录,也是给像我一样的人一个大概方向。 注:windows系统 1、首先要弄好jar包的运行环境。 安装jdk 详细安装过程引用 jdk的完整…

码农:如何快速融入团队

问题: 码农如何快速融入团队? 记住一个标准:能干事、能抗事。 总结一个字: 靠谱。 适用范围:新手码农、老司机码农、测试、DBA、运维、产品经理、项目经理、架构师、技术专家、。。。。适用于任何行业的打工者。 下面要…

伙伴活动推荐丨当 RTC 遇上 AI ,大模型创新应用星城论道

近年来,音视频技术已成为推动在线新经济和企业数字化转型的重要力量。作为中部互联网产业高地,湖南长沙亦将音视频产业视为战略性新兴产业重点布局。 2024年7月6日,声网联合 CSDN 在湖南长沙举办声网城市沙龙,以“当 RTC 遇上 AI…

VMware Workstation环境下,DHCP服务的安装配置,用ubuntu来测试

需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…

Matlab/simulink三段式电流保护

电流1段仿真波形如下所示 电流2段仿真波形如下所示 电流3段仿真波形如下所示

SSL证书在网站访问中的核心作用及快速申请指南

在当今的互联网时代,数据安全与用户隐私保护成为了网站运营不可或缺的一部分。SSL证书作为一种重要的网络安全协议,它在网站访问中扮演着至关重要的角色,主要体现在以下几个方面: 一、加密通信内容:SSL证书通过建立安…

系统进程与计划任务

目录 系统进程 ps命令 top命令 pgrep命令 pstree命令 jobs命令 计划任务 一次性计划任务at 周期性计划任务crontab 系统进程 我们系统在打开的一瞬间就会加载很多进程,那么我们该如何查看这些进程和管理这些进程呢? ps命令 常用的参数 -a&am…

Linux创建目录——mkdir命令,du命令,touch用法,创建tree拓扑图

1. mkdir 命令 格式 mkdir - 参数 路径 / 目录名 参数 -p :快速创建多级目录(递归目录) -v :显示创建目录的详细过程 例: [rootserver ~] # mkdir t1 [rootserver ~] # mkdir t2 t3 t4 [rootserver ~] # mk…

计算机毕业设计hadoop+spark+hive知识图谱医生推荐系统 医生数据分析可视化大屏 医生爬虫 医疗可视化 医生大数据 机器学习 大数据毕业设计

测试过程及结果 本次对于医生推荐系统测试通过手动测试的方式共进行了两轮测试。 (1)第一轮测试中执行了个20个测试用例,通过16个,失败4个,其中属于严重缺陷的1个,属于一般缺陷的3个。 (2&am…

百元蓝牙耳机推荐2024哪个好?蓝牙耳机性价比之王推荐

现在的百元价位的蓝牙耳机成为了许多消费者入门级的选择,它不仅需要满足基础的通话需求,更要在音质、舒适度、续航能力等多方面达到一定的标准,随着技术的发展和市场的竞争激烈,各大品牌在这一价格区间推出了极具竞争力的产品&…

万能自定义预约小程序源码系统 适合任何行业在线预约报名 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代,线上预约已成为各行各业不可或缺的一部分。为满足广大企业和个人对在线预约系统的需求,我们特别推出了这款“万能自定义预约小程序源码系统”。该系统以其高度的灵活性和可扩展性,为各行各业提供了完美的在线预约…

vue+fineReport 使用前端搜索+报表显示数据

--fineReprot 将需要搜索的参数添加到模版参数 sql: --前端传递参数 注:因为每次点击搜索的结果需要不一样,还要传递一个时间戳的参数: let timesamp new Date().getTime()

Python爬取中国天气网天气数据.

一、主题式网络爬虫设计方案 1.主题式网络爬虫名称 名称:Python爬取中国天气网天气数据 2.主题式网络爬虫爬取的内容与数据特征分析 本次爬虫主要爬取中国天气网天气数据 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) reques…