用shell编写批量打包日志脚本

脚本1

#!/bin/bash
DATE=$(date +%Y%m%d%H%M)
NAME=$(echo $1 | awk -F‘,‘ ‘{print NF}‘)
LOG_PATH="$2"
if [ $# -ne 2 ];then
    echo "USAGE: sh $0 log_name1,log_name2 log_path"
    exit
fi
for NUM in `seq 1 $NAME`
do
    LOG_NAME=$(echo $1 | cut -d ‘,‘ -f $NUM)
    for i in {1..6}
    do
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/dx${i}${LOG_NAME}" dx${i}sock2
    done
    for i in 1 2 3 4
    do
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/lt${i}${LOG_NAME}" lt${i}sock2
    done
    for i in 179 yy 360 9377
    do
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/${i}${LOG_NAME}" ${i}sock2
    done
    tar zcvf $DATE-${LOG_NAME}.tar.gz *${LOG_NAME} && rm -rf /mnt/*${LOG_NAME}
done
NUMBER=$(ls *.tar.gz |  wc -l)
if [ $NUMBER -gt 1 ];then
    TAR_NAME=$(echo ${LOG_NAME} | awk -F‘.‘ ‘{print $1}‘)
    tar zcvf ${DATE}-all-${TAR_NAME}.tar.gz *.tar.gz
    rm -rf /mnt/${DATE}-${TAR_NAME}*.tar.gz
fi

脚本2

#!/bin/bash
DATE=$(date +%Y%m%d%H%M)
#NAME=$(echo $1 | awk -F‘,‘ ‘{print NF}‘)
SHU="$1"
NAME="$2"
LOG_PATH="$3"
if [ $# -ne 3 ];then
    echo "USAGE: sh $0 number log_name log_path"
    exit
fi
for NUM in `seq 1 $SHU`
do
    for i in {1..6}
    do
        LOG_NAME=$(ansible -m shell -a "cd ${LOG_PATH};ls -l -t ${NAME}.* | awk ‘{print $9}‘ | head -${NUM} | tail -1" dx${i}sock2 | tail -1 | awk ‘{print $9}‘)
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/dx${i}${LOG_NAME}" dx${i}sock2
    done
    for i in 1 2 3 4
    do
        LOG_NAME=$(ansible -m shell -a "cd ${LOG_PATH};ls -l -t ${NAME}.* | awk ‘{print $9}‘ | head -${NUM} | tail -1" lt${i}sock2 | tail -1 | awk ‘{print $9}‘)
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/lt${i}${LOG_NAME}" lt${i}sock2
    done
    for i in 179 yy 360 9377
    do
        ansible -m synchronize -a "mode=pull src=${LOG_PATH}${LOG_NAME} dest=/mnt/${i}${LOG_NAME}" ${i}sock2
    done
done
tar zcvf $DATE-${NAME}-$NUM.tar.gz *${NAME}*  && rm -rf /mnt/{*.log,*.log.*}
时间: 05-15

用shell编写批量打包日志脚本的相关文章

使用python编写批量ping主机脚本

通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: ping_ip.py import os,sys import subprocess,cmd def subping():     f = open("ip_list.txt","r")     lines = f.readlines()     for line in 

shell编写tomcat自动守护脚本

工作所需,匆匆忙忙写了个监控tomcat的shell脚本,大概思路是这样的:先检测tomcat进程是否存在,如果不存在就启动,如果进程存在,检测页面返回码状态,如果是200就是正常,如果不是就重启. #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作# author:reed# date:12/09/2012 # 定义环境变量PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/jav

使用HTML+shell编写九九乘法口诀脚本

首先Linux操作系统需要安装好httpd,以测试脚本效果: 脚本内容如下: #!/bin/bash CURRENT_HTML=/var/www/html/index.html cat <<EOF > $CURRENT_HTML <html> <head> <title>九九乘法表</title> </head> <body> <table width="30%" border="

shell之批量新增用户脚本(http-basic-auth)

user.txt(用户名记录文件) [email protected]163.com [email protected]163.com user.sh(shell脚本): for line in `cat user.txt` do echo $line "u"$line printf "$line:$(openssl passwd -crypt $line)\n" >> conf.d/passwd done 执行完毕后,就可以在passwd看到对应的记录

apache自动打包日志脚本

#!/bin/bash # apachedata=$(date +%Y%m%d) time=$(date +%Y%m%d%H --date='1 hour ago') cd /logs/apache/ tar -zcvf genius_access_log_$time.tar.gz genius_access_log_$time.log mv genius_access_log_$time.tar.gz /logs/apache_visit/ #从今天零时开始7天以外的文件删除 find /lo

分析Mysql慢日志脚本及快速定位慢Sql

分析Mysql慢日志是运维工作中,不可少的.要快速定位慢Sql,以及发现后优化Sql及修改业务,保证数据库稳定高效地工作.下面是我工作中解决的思路... 1.先查看本地数据库慢日志文件 2.编写分析慢日志脚本 #!/usr/bin/python #coding=utf-8  #字符编码 import re  #导入正则匹配模块 import time #导入时间模块 import sys  #导入sys模块 import MySQLdb #导入连接mysql模块 canshu=len(sys.a

Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法

一.需求背景     因此次项目的生产环境中部署了多套系统,每天会产生大量的日志(数百GB的量),侵占了服务器宝贵的存储资源空间.为了有效缓解服务器存储压力,考虑通过Linux的Shell脚本结合crontab定时每周一对上周7天的日志打包压缩,并删除原被打包的日志文件,以腾出更多可利用的存储资源空间. 对于初次接触Shell脚本的同学,建议先花几个小时时间学习一下Shell.附Shell教程链接如下: http://www.runoob.com/linux/linux-shell-proces

iOS 批量打包--Shell脚本

由于公司有批量打包的需要,只是渠道号不一样,网上搜索一番,大致有两个方式:a) 从源程序一次性打出所有渠道的ipa包,大概的思路就是利用脚本循环执行打包过程,而每次打包前都通过脚本修改项目中存放渠道号的文件为当前循环的最新渠道号,让后逐个打包.b) 提供一个ipa格式的母包 从母包生成其它所有的渠道包,可能你会问:用一个包生成其他的包可行么??原因是这样的:因为每个渠道只是渠道号发生变化,而其他的内容又不会发生变化,而我们的渠道号又是存储在Info.plist这个文件中的,所以只要改变母包中的I

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本