为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第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写进去,程序读取配置文件。

https://img1.sycdn.imooc.com//632bc9d50001a2ca19200913.jpghttps://img1.sycdn.imooc.com//632bc9ba0001fa1219200913.jpg

https://img1.sycdn.imooc.com//632bc9e800018f2619200913.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消