编写背景:

多个后台应用的日志分别在各个应用下面的logs下面info.log、debug.log、error.log,没隔一天会将这三个日志加上日期(但文件名最后有一个空格),先需要将所有有日期的日志放到同一目录,当天的日志每隔一小时同步一次。

定时任务设定

vi /etc/corntab

1 0 * * * * root /opt/log/getLog.sh
2 0 1 * * * root /opt/log/bakLog.sh

定时将日志输出到指定目录,并打包(单个文件打包)【bakLog.sh】

 1 #!/bin/bash
 2
 3 backupLog()
 4 {
 5     FROMDIR=$1;
 6     TODIR=$2;
 7
 8     if [[ -z "$FROMDIR" || -z "$TODIR" ]]; then
 9                 echo "parameter error!";
10                 return;
11         fi
12
13         if [ ! -d $TODIR ]; then
14                  mkdir -p $TODIR
15         fi
16
17     cd $FROMDIR
18     find . -name "*.log.*" | awk -F " " '{sub("./","");print $1}' | xargs -i cp "{} " $TODIR/{}
19     cd $TODIR
20     find . -name "*.log.????-??-??" -exec tar -zcf "{}.tar.gz" {} \;
21     find . -name "*.log.????-??-??" | awk -F / '{sub("./","");print}' | xargs rm -rf ;
22 }
23
24 GUANGSOFT=/opt/GuangheHome
25 LOGDIR=/opt/log
26
27 backupLog $GUANGSOFT/guanghe/logs $LOGDIR/guanghe

定时将日志输出到指定目录,并打包(同一日期日志放到同一文件夹,再将文件夹打包)【bakLog.sh】

 1 #!/bin/bash
 2
 3 backupLog()
 4 {
 5     FROMDIR=$1;
 6     TODIR=$2;
 7     DATESTR=$(date -d '1 days ago' +%Y%m%d)
 8     DATEDIR=$(date -d '1 days ago' +%Y-%m-%d)
 9
10     if [[ -z "$FROMDIR" || -z "$TODIR" ]]; then
11                 echo "parameter error!";
12                 return;
13         fi
14
15         if [ ! -d $TODIR/$DATESTR ]; then
16                  mkdir -p $TODIR/$DATESTR
17         fi
18
19     cd $FROMDIR
20     find . -name "*.log."$DATEDIR" " | awk '{sub("./","");print}' | xargs -i cp {} $TODIR/$DATESTR/{}
21     cd $TODIR
22     if [ "$(ls -A)" != "" ]; then
23         tar -zcf ${DATESTR}.tar.gz $DATESTR
24     fi
25     rm -rf $DATESTR
26 }
27
28 GUANGSOFT=/opt/ECSNHome
29 LOGDIR=/opt/log
30
31 backupLog $GUANGSOFT/guanghe/logs $LOGDIR/guanghe

定时同步日志到指定目录【getLog.sh】

 1 #!/bin/bash
 2
 3 transferLog()
 4 {
 5     FROMDIR=$1;
 6         TODIR=$2;
 7         FILES=$3;
 8
 9     if [[ -z "$FROMDIR" || -z "$TODIR" || ${#FILES[@]} -le 0 ]]; then
10         echo "parameter error!";
11         return;
12     fi
13
14     if [ ! -d $TODIR ]; then
15                  mkdir -p $TODIR
16         fi
17
18     for VAR in ${FILES[*]}
19         do
20                 cp -r $FROMDIR/$VAR $TODIR/$VAR
21         done
22
23 }
24
25 GUANGSOFT=/opt/GuangheHome
26 LOGDIR=/opt/log
27 FILES=(info.log debug.log error.log)
28
29 transferLog $GUANGSOFT/guanghe/logs $LOGDIR/guanghe $FILES
30
31
32  

转载于:https://www.cnblogs.com/guanghe/p/8193313.html

定时将应用日志移动到指定目录相关推荐

  1. Linux 定时任务shell脚本定时移动服务器日志文件到指定目录下

    我们业务在生产服务器运行,产生许多日志文件,磁盘空间有限,需要经常 手动清理,现在通过linux的crond服务实现,自动移动日志到指定目录. 1.使用vi命令创建一个脚本文件(我是在home目录下创 ...

  2. java - 把日志生成到指定目录

    2019独角兽企业重金招聘Python工程师标准>>> 1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-H ...

  3. java生成日志文件_java - 把日志生成到指定目录

    1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-HH 2.最大日志文件数据 log4j.appender.ruiming.M ...

  4. Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

    文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongo ...

  5. php定时删除目录,shell定时删除指定目录下的文件

    contab -e 10 */12 * * * sh /usr/local/apache2/htdocs/cakephp/ebook/webroot/php/delete_big_log.sh 代码: ...

  6. mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录

    编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天的日期命名)放到/root/data #cd /root #vim mysqlbackup.sh #!/bin/bas ...

  7. Linux中定时清除指定目录中30分钟前生成的特定文件

    1.首先创建一个脚本文件,我们举例文件名称为clearBigtrc03.sh. cd /home vi clearBigtrc03.sh 2.在文件中输入清除指定目录中30分钟前生成的脚本. 假设需要 ...

  8. nginx日志通过rsyslog传入到日志服务器指定目录

    V5配置语法: 推送端设置 [root@nginx01 ~]# cat /etc/rsyslog.conf # rsyslog v5 configuration file # For more inf ...

  9. 远程删掉服务器的文件能找回吗,远程删除Windows服务器指定目录下N天前文件方法...

    在使用Windows服务器的时候,每天都会增加大量的文件以及日志文件,日积月累的话就会占用过多的服务器空间,所以做到定期清理删除就显得格外重要. 在Windows服务器中有一个功能很方便,就是可以通过 ...

最新文章

  1. 细说Asp.net的IP地址屏蔽功能设计
  2. JVM垃圾回收3——参数详解(转载)
  3. 中原银行张本晨:中原银行数字化营销体系建设实践
  4. python获取列表list里面元素的下标
  5. Linux fprintf的用法
  6. server sql 水平分表_springboot集成Shardingsphere进行分库分表
  7. 【数据库】Mysql函数DATE_ADD() 增加日期/时间
  8. java迭代器不能修改集合值_关于使用迭代器对集合进行遍历时,不能对集合进行修改的论证...
  9. svn co 默认密钥' GNOME keyring
  10. BZOJ1938: [CROATIAN2010] ALADIN
  11. 【司法比赛】第三届“中国法研杯”司法人工智能挑赛(CAIL2020)即将启动
  12. Python编程输出所有的“水仙花数”
  13. linux版gaussian运行,【求助】gaussian 在linux不能运行?急急急 - 量子化学 - 小木虫 - 学术 科研 互动社区...
  14. 批量创建文件夹 在批量创建的文件夹下创建两个子文件夹
  15. windows - 更改用户账户名称(windows10)
  16. 生成无限制的微信小程序码
  17. My Seventy-seventh Page - 零钱兑换 - By Nicolas
  18. java put 请求_java发送put请求
  19. 赵小楼《天道》《遥远的救世主》深度解析(142)贫富差距化是常态,扶贫不是拉平平均值,而是强者去关注弱者
  20. 解决element的Table表格组件的高度问题( height只能是数字或者字符串 ),实现height: calc(100vh - 260px) 的效果

热门文章

  1. 类模版静态成员初始化
  2. Transaction And Lock--锁相关基础
  3. IE9浏览器更像一个互联网舞台
  4. javascript传值和页面跳转传值(ASP.NET页面传参的三种方法)
  5. ADC动态范围的计算
  6. oracle java api_oracle java api
  7. Windows、VMware、Linux及开发板间的网络连接
  8. return 返回部分值
  9. python语音处理工具
  10. SylixOS 基于STM32平台的GPIO模仿I2C总线的驱动开发流程