【网络云计算】2024第52周-每日【2024/12/25】小测-理论实操-自己构造场景,写5个系统管理的脚本-解析

news2025/1/2 23:02:38

文章目录

      • 场景1:自动备份数据库
      • 场景2:监控服务器CPU和内存使用情况
      • 场景3:自动更新系统软件包
      • 场景4:自动清理临时文件
      • 场景5:自动重启崩溃的服务

【网络云计算】2024第52周-每日【2024/12/24】小测-理论&实操-自己构造场景,写5个系统管理的脚本

在网络云计算环境中,系统管理脚本对于自动化任务、监控和维护系统至关重要。以下是五个自己构造的系统管理脚本场景及其对应的脚本示例。这些脚本使用Bash编写,适用于Linux系统。

场景1:自动备份数据库

场景描述:每天凌晨2点自动备份MySQL数据库到指定目录,并保留最近7天的备份文件。

#!/bin/bash

# 设置变量
BACKUP_DIR="/backup/mysql"
DATE=$(date +%F)
DB_USER="root"
DB_PASSWORD="yourpassword"
DB_NAME="yourdatabase"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/${DB_NAME}_$DATE.sql

# 删除超过7天的备份文件
find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -exec rm {} \;

# 将此脚本添加到crontab中以实现自动化
# 0 2 * * * /path/to/this/script.sh

场景2:监控服务器CPU和内存使用情况

场景描述:每隔5分钟检查一次服务器的CPU和内存使用情况,并将结果记录到日志文件中。

#!/bin/bash

# 设置变量
LOG_FILE="/var/log/system_monitor.log"
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")

# 获取CPU和内存使用情况
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4 "%"}')
MEM_USAGE=$(free -m | awk '/^Mem:/{printf("%.2f%\n", $3*100/$2)}')

# 记录到日志文件
echo "$TIMESTAMP - CPU Usage: $CPU_USAGE, Memory Usage: $MEM_USAGE" >> $LOG_FILE

# 将此脚本添加到crontab中以实现自动化
# */5 * * * * /path/to/this/script.sh

场景3:自动更新系统软件包

场景描述:每周三凌晨3点自动更新系统的所有软件包,并重启必要的服务。

#!/bin/bash

# 更新软件包列表
apt-get update

# 升级所有已安装的软件包
apt-get upgrade -y

# 如果有必要,可以添加重启服务的逻辑(例如,重启nginx)
# systemctl restart nginx

# 注意:在实际环境中,自动重启服务可能需要谨慎处理,以避免服务中断。
# 可以考虑在更新后手动验证服务状态,或编写更复杂的逻辑来决定何时重启。

# 将此脚本添加到crontab中以实现自动化
# 0 3 * * 3 /path/to/this/script.sh

场景4:自动清理临时文件

场景描述:每天凌晨1点自动清理/tmp/var/tmp目录中的临时文件。

#!/bin/bash

# 要清理的目录
DIRS=("/tmp" "/var/tmp")

# 遍历目录并删除其中的文件
for DIR in "${DIRS[@]}"; do
    rm -rf $DIR/*
    # 注意:rm -rf 是非常危险的命令,使用时需要格外小心。
    # 在生产环境中,可能需要更精细的控制来避免删除重要文件。
done

# 将此脚本添加到crontab中以实现自动化
# 0 1 * * * /path/to/this/script.sh

场景5:自动重启崩溃的服务

场景描述:每隔10分钟检查一次指定服务(如nginx)的状态,如果服务未运行,则自动重启它。

#!/bin/bash

# 设置变量
SERVICE_NAME="nginx"
CHECK_INTERVAL=600  # 10分钟,单位为秒
LOG_FILE="/var/log/service_restart.log"
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")

# 无限循环,每隔CHECK_INTERVAL秒检查一次服务状态
while true; do
    # 检查服务状态
    if ! systemctl is-active --quiet $SERVICE_NAME; then
        # 服务未运行,尝试重启
        echo "$TIMESTAMP - $SERVICE_NAME is not running. Attempting to restart." >> $LOG_FILE
        systemctl restart $SERVICE_NAME
        
        # 检查重启是否成功
        if systemctl is-active --quiet $SERVICE_NAME; then
            echo "$TIMESTAMP - $SERVICE_NAME restarted successfully." >> $LOG_FILE
        else
            echo "$TIMESTAMP - Failed to restart $SERVICE_NAME." >> $LOG_FILE
        fi
    fi
    
    # 等待CHECK_INTERVAL秒
    sleep $CHECK_INTERVAL
done

# 注意:这个脚本会无限循环运行,通常应该作为systemd服务或通过其他方式管理。
# 在实际部署时,需要确保脚本的安全性和资源管理(例如,避免CPU和内存占用过高)。
# 将此脚本作为systemd服务运行可能是一个更好的选择。

重要提示

  1. 在实际环境中使用这些脚本之前,请确保对它们进行了充分的测试,并理解每个命令的潜在影响。
  2. 对于涉及系统安全和稳定性的操作(如自动重启服务),请格外小心,并考虑在实施之前与团队或系统管理员进行讨论。
  3. 这些脚本可能需要根据具体的系统配置和需求进行调整。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报表工具DevExpress Reporting v24.2亮点 - AI功能进一步强化

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 报表工具DevExpress Reporting v24.2将于近期发…

每天40分玩转Django:Django表单集

Django表单集 一、知识要点概览表 类别知识点掌握程度要求基础概念FormSet、ModelFormSet深入理解内联表单集InlineFormSet、BaseInlineFormSet熟练应用表单集验证clean方法、验证规则熟练应用自定义配置extra、max_num、can_delete理解应用动态管理JavaScript动态添加/删除表…

MVCC实现原理以及解决脏读、不可重复读、幻读问题

MVCC实现原理以及解决脏读、不可重复读、幻读问题 MVCC是什么?有什么作用?MVCC的实现原理行隐藏的字段undo log日志版本链Read View MVCC在RC下避免脏读MVCC在RC造成不可重复读、丢失修改MVCC在RR下解决不可重复读问题RR下仍然存在幻读的问题 MVCC是什么…

自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator

完成了文本识别和人脸检测的项目后,我发现人脸比对是一个更有趣的一个小技术玩意儿。我决定整一整,也就是对HarmonyOS Next最新版本API 13中的Core Vision Face Comparator API的学习,这项技术能够对人脸进行高精度比对,并给出相似…

代码解析:安卓VHAL的AIDL参考实现

以下内容基于安卓14的VHAL代码。 总体架构 参考实现采用双层架构。上层是 DefaultVehicleHal,实现了 VHAL AIDL 接口,并提供适用于所有硬件设备的通用 VHAL 逻辑。下层是 FakeVehicleHardware,实现了 IVehicleHardware 接口。此类可模拟与实…

通过 Ansys Electronics Desktop 中的高级仿真优化 IC 设计

半导体行业继续通过日益复杂的集成电路 (IC) 设计突破技术界限。随着工艺节点缩小和电路密度达到前所未有的水平,电磁效应对设备性能和可靠性变得越来越重要。现代 IC 设计面临着来自复杂的布局相关耦合机制、信号完整性问题和功率分布问题的挑战,这些问…

Kafka数据迁移全解析:同集群和跨集群

文章目录 一、同集群迁移二、跨集群迁移 Kafka两种迁移场景,分别是同集群数据迁移、跨集群数据迁移。 一、同集群迁移 应用场景: broker 迁移 主要使用的场景是broker 上线,下线,或者扩容等.基于同一套zookeeper的操作。 实践: 将需要新添加…

【OpenGL ES】GLSL基础语法

1 前言 本文将介绍 GLSL 中数据类型、数组、结构体、宏、运算符、向量运算、矩阵运算、函数、流程控制、精度限定符、变量限定符(in、out、inout)、函数参数限定符等内容,另外提供了一个 include 工具,方便多文件管理 glsl 代码&a…

ffmpeg之播放一个yuv视频

播放YUV视频的步骤 初始化SDL库: 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 创建窗口用于显示YUV视频: 目的:…

复习打卡大数据篇——Hadoop MapReduce

目录 1. MapReduce基本介绍 2. MapReduce原理 1. MapReduce基本介绍 什么是MapReduce MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。 MapRed…

小程序配置文件 —— 13 全局配置 - window配置

全局配置 - window配置 这里讲解根目录 app.json 中的 window 字段,window 字段用于设置小程序的状态栏、导航条、标题、窗口背景色; 状态栏:顶部位置,有网络信号、时间信息、电池信息等;导航条:有一个当…

el-pagination 为什么只能展示 10 条数据(element-ui@2.15.13)

好的&#xff0c;我来帮你分析前端为什么只能展示 10 条数据&#xff0c;以及如何解决这个问题。 问题分析&#xff1a; pageSize 的值&#xff1a; 你的 el-pagination 组件中&#xff0c;pageSize 的值被设置为 10&#xff1a;<el-pagination:current-page"current…

单片机与MQTT协议

MQTT 协议简述 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布 / 订阅&#xff08;publish/subscribe&#xff09;模式的 “轻量级” 通讯协议&#xff0c;该协议构建于 TCP/IP 协议上&#xf…

Debian-linux运维-docker安装和配置

腾讯云搭建docker官方文档&#xff1a;https://cloud.tencent.com/document/product/213/46000 阿里云安装Docker官方文档&#xff1a;https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker-on-a-linux-ecs-instance 天翼云常见docker源配置指导&#xff1a;htt…

使用Docker-compose部署SpringCloud项目

docker编写dockfile遇到的问题&#xff1a; 需要在docker-compose.yml文件下执行命令 docker-compose.yml文件格式的问题 1和2处空2格&#xff0c;3处空1格&#xff0c;4为本地配置文件目录&#xff0c;5为docker容器的目录&#xff0c;version为自己安装的docker-compose版本 …

KG4Diagnosis 分层多代理的医疗诊断框架,结合大模型与知识图谱构建,覆盖362种常见疾病

KG4Diagnosis 分层多代理的医疗诊断框架&#xff0c;结合大模型与知识图谱构建&#xff0c;覆盖362种常见疾病 论文大纲理解1. 提出背景是什么&#xff1f;2. 概念的性质是什么&#xff1f;是什么导致这个性质&#xff1f;3. 请举一个正例、一个反例&#xff0c;对比4. 请使用类…

【LLM综述】29种大模型Prompt Engineering技术

note 从零样本&#xff08;Zero-shot&#xff09;提示到最新进展的各种提示技术&#xff0c;包括推理和逻辑链&#xff08;Chain-of-Thought, CoT&#xff09;提示、自动链式思考&#xff08;Auto-CoT&#xff09;提示、自我一致性&#xff08;Self-Consistency&#xff09;提…

【黑马头条训练营】day02-黑马头条-App端文章展示

目录 描述app端首页从请求到数据显示的全部流程 描述文章微服务的组成及首页展示业务与实现 自己编写文章微服务关键逻辑 描述app端首页从请求到数据显示的全部流程 浏览器请求我们的app端 会通过nginx请求到我们app前端 app端输入手机号和密码 点击登录 请求 会到我们的…

DBeaver 咋手动配置sqlite 驱动

目录 1 问题2 下载 1 问题 离线安装了DBeaver 数据库软件&#xff0c;现在需要使用这个数据库打开sqlite 数据库&#xff0c;但是提示没有 驱动&#xff0c;那么我们就需要手动下载驱动&#xff0c;在这个软件里面导入 2 下载 https://repo1.maven.org/maven2/org/xerial/sql…

Linux 的历史与发展:从诞生到未来

Linux 的历史与发展&#xff1a;从诞生到未来 1. 起源之前&#xff1a;操作系统的历史背景 在 Linux 问世之前&#xff0c;操作系统的发展经历了多个重要阶段&#xff0c;这些阶段为 Linux 的诞生奠定了基础&#xff1a; 1940-1950 年代&#xff1a;计算机初期 早期计算机如 [[…