【九月打卡】第18天 一课玩转自动化运维全流程,轻松应对自动化运维岗
2022/9/23 3:17:14
本文主要是介绍【九月打卡】第18天 一课玩转自动化运维全流程,轻松应对自动化运维岗,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程章节: 第2章 shell编程基础:2-19 Shell脚本实战(二)(课程链接:https://coding.imooc.com/lesson/549.html#mid=50193)
主讲老师: 沈奇才
课程内容:shell编程实战与Linux运维基础--初始shell编程
课程收获:
日志备份实战,应用于多机器或集群运维场景
#! /bin/bash
# 日志压缩
LOG_DIR=logs
[[ -d "$LOG_DIR" ]] || mkdir $LOG_DIR
cd $LOG_DIR
log_out() {
log_path="compress.log"
echo $1 >> $log_path
}
# 按照 101230 每10秒生成日志文件
produce_log_files() {
while ls > /dev/null
do
let "host_count = $RANDOM % 7 + 2" # 2-8
now_time=$(date "+%H%M%S")
declare -a host_arr
for i in `seq 0 $host_count` # 5 0-5
do
host_arr[$i]="10.83.26.`expr $i + 10`" # 10-15
done
for host in "${host_arr[@]}"
do
log_out "生成日志文件: ${host}_${now_time}.access.log"
touch ${host}_${now_time}.access.log
done
sleep 10
done
}
compress_log_files() {
while ls > /dev/null
do
sleep 1
compress_time=$(find . -name "*.access.log" -exec basename {} \; | awk -F_ '{print $2}' | awk -F. '{print $1}' | sort -r | uniq | awk 'NR==1{print}')
if [ -z "$compress_time" ]; then
log_out "当前没有日志文件要压缩"
continue
fi
log_out "压缩${compress_time}文件..."
find . -name "*${compress_time}.access.log" | xargs tar -czPf log_compress_${compress_time}.tar.gz
if [ $? -eq 0 ] && [ -e "log_compress_${compress_time}.tar.gz" ]; then
find . -name "*${compress_time}.access.log" -exec rm -f {} \;
fi
log_out "压缩${compress_time}文件完成..."
done
}
produce_log_files & ##放入后台查询
compress_log_files & ##放入后台查询
对于集群的运维,除了使用遍历,还可以通过创建配置文件host.cfg,将所有需要运维的主机ip写进去,程序读取配置文件。
这篇关于【九月打卡】第18天 一课玩转自动化运维全流程,轻松应对自动化运维岗的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解