shell脚本练习(3)

embedded/2025/1/12 4:25:46/

一、编写一个shell脚本,功能如下:
(1)提示用户输入网络接口名称。
(2)根据接口返回IP。

[root@openEuler-1 ~]# cat showIP.sh
#!/bin/bash# 获取接口名
net_name=`ip a | awk -F"[ :]" '/^[0-9]:/ {print $3}'`
# 输出主机下的所有接口
echo $net_name# 用户输入需要查看的接口
read -p "请输入接口名称:" int_name# 判断接口是否存在(大小写都可以)
if echo $net_name | grep -w $int_name &> /dev/null
then# 输出目标接口下的IP地址ip a s $int_name | awk '/inet / {print $2}'
elseecho "接口名称不正确."exit 3
fi[root@openEuler-1 ~]# bash showIP.sh
lo ens160
请输入接口名称:ens160
192.168.121.11/24

二、编写一个Shell脚本,实现进程守护功能:
(1)脚本应接受服务名称(如nginx、mysqld等)作为参数。
(2)检查指定的服务是否正在运行。
(3)如果服务未运行,则尝试启动服务,并记录启动日志。
(4)每隔1分钟检查一次服务状态,确保服务持续运行。

[root@openEuler-1 ~]# cat daemon.sh
#!/bin/bash# 检查是否提供了参数
if [ -z $1 ]
thenecho "请传入参数(服务名称)"exit 1
fi# 定义服务名
service_name=$1
# 定义日志文件
log_file="/var/log/${service_name}_daemon.log"
echo "" > $log_file# 检查服务是否正在运行的函数
check_service_running(){# 完全匹配服务名查找进程if pgrep -x "$service_name" &> /dev/nullthenecho "$(date '+%Y-%m-%d %H:%M:%S')---$service_name正在运行中" >> $log_fileelseecho "$(date '+%Y-%m-%d %H:%M:%S')---$service_name尝试启动中" >> $log_filesystemctl start $service_name &> /dev/nullif [ $? -eq 0 ]thenecho "$(date '+%Y-%m-%d %H:%M:%S')---$service_name启动成功!!" >> $log_fileelseecho "$(date '+%Y-%m-%d %H:%M:%S')---$service_name启动失败!!" >> $log_filefifi
}while true
docheck_service_runningsleep 60
done[root@openEuler-1 ~]# systemctl stop httpd
[root@openEuler-1 ~]# bash daemon.sh httpd
^C    
[root@openEuler-1 ~]# cat /var/log/httpd_daemon.log
2025-01-10 17:03:33---httpd尝试启动中
2025-01-10 17:03:33---httpd启动成功!!

http://www.ppmy.cn/embedded/153202.html

相关文章

单通道串口服务器(三格电子)

一、产品介绍 1.1 功能简介 SG-TCP232-110 是一款用来进行串口数据和网口数据转换的设备。解决普通 串口设备在 Internet 上的联网问题。 设备的串口部分提供一个 232 接口和一个 485 接口,两个接口内部连接,同 时只能使用一个口工作。 设 备 的网 口…

uniapp 使用 pinia 状态持久化

1.创建文件 stores -index.js -global.js2.对应文件内容 index.js 安装插件 npm i pinia-plugin-persistedstate import { createPinia } from pinia; import persist from pinia-plugin-persistedstate; const pinia createPinia(); pinia.use(persist); export default pi…

特制一个自己的UI库,只用CSS、图标、emoji图 日后慢用!!!

图片&#xff1a; emoji图标库 --emoji.html <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Emo…

第30天:PHP应用组件框架前端模版渲染三方插件富文本编辑器CVE审计

#知识点&#xff1a; 1、安全开发-原生PHP-开发组件集合 2、安全开发-原生PHP-模版引擎渲染 3、安全开发-原生PHP-第三方编辑器 1、模版引擎 在开始介绍Smarty之前先了解一下模板引擎&#xff0c;模板引擎是为了让前端界(html)与程序代码(php)分离而产生的一种解决方案&#x…

ubuntu NVIDIA 驱动程序安装指南

NVIDIA 驱动程序安装指南 卸载现有的 NVIDIA 驱动程序&#xff1a; sudo apt-get purge nvidia*添加 NVIDIA PPA&#xff1a; sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update安装推荐的 NVIDIA 驱动程序&#xff1a; sudo ubuntu-drivers devices sudo…

风水算命系统架构与功能分析

系统架构 服务端&#xff1a;Java&#xff08;最低JDK1.8&#xff0c;支持JDK11以及JDK17&#xff09;数据库&#xff1a;MySQL数据库&#xff08;标配5.7版本&#xff0c;支持MySQL8&#xff09;ORM框架&#xff1a;Mybatis&#xff08;集成通用tk-mapper&#xff0c;支持myb…

深入解析 ZooKeeper:分布式协调服务的原理与应用

1.说说 Zookeeper 是什么&#xff1f; ZooKeeper 是一个开源的分布式协调服务&#xff0c;由 Apache Software Foundation 开发维护。它为构建分布式应用程序提供了一套简单且高效的协调接口。ZooKeeper 的设计目的是为了简化分布式系统中常见的任务&#xff0c;例如命名、配置…

【FPGA】时序约束与分析

设计约束 设计约束所处环节&#xff1a; 约束输入 分析实现结果 设计优化 设计约束分类&#xff1a; 物理约束&#xff1a;I/O接口约束&#xff08;例如引脚分配、电平标准设定等物理属性的约束&#xff09;、布局约束、布线约束以及配置约束 时序约束&#xff1a;设计FP…