定时将应用日志移动到指定目录
编写背景:
多个后台应用的日志分别在各个应用下面的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
定时将应用日志移动到指定目录相关推荐
- Linux 定时任务shell脚本定时移动服务器日志文件到指定目录下
我们业务在生产服务器运行,产生许多日志文件,磁盘空间有限,需要经常 手动清理,现在通过linux的crond服务实现,自动移动日志到指定目录. 1.使用vi命令创建一个脚本文件(我是在home目录下创 ...
- java - 把日志生成到指定目录
2019独角兽企业重金招聘Python工程师标准>>> 1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-H ...
- java生成日志文件_java - 把日志生成到指定目录
1.按天小时生成日志文件 log4j.appender.ruiming.DatePattern='_'yyyy-MM-dd-HH 2.最大日志文件数据 log4j.appender.ruiming.M ...
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)
文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongo ...
- php定时删除目录,shell定时删除指定目录下的文件
contab -e 10 */12 * * * sh /usr/local/apache2/htdocs/cakephp/ebook/webroot/php/delete_big_log.sh 代码: ...
- mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录
编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天的日期命名)放到/root/data #cd /root #vim mysqlbackup.sh #!/bin/bas ...
- Linux中定时清除指定目录中30分钟前生成的特定文件
1.首先创建一个脚本文件,我们举例文件名称为clearBigtrc03.sh. cd /home vi clearBigtrc03.sh 2.在文件中输入清除指定目录中30分钟前生成的脚本. 假设需要 ...
- nginx日志通过rsyslog传入到日志服务器指定目录
V5配置语法: 推送端设置 [root@nginx01 ~]# cat /etc/rsyslog.conf # rsyslog v5 configuration file # For more inf ...
- 远程删掉服务器的文件能找回吗,远程删除Windows服务器指定目录下N天前文件方法...
在使用Windows服务器的时候,每天都会增加大量的文件以及日志文件,日积月累的话就会占用过多的服务器空间,所以做到定期清理删除就显得格外重要. 在Windows服务器中有一个功能很方便,就是可以通过 ...
最新文章
- 细说Asp.net的IP地址屏蔽功能设计
- JVM垃圾回收3——参数详解(转载)
- 中原银行张本晨:中原银行数字化营销体系建设实践
- python获取列表list里面元素的下标
- Linux fprintf的用法
- server sql 水平分表_springboot集成Shardingsphere进行分库分表
- 【数据库】Mysql函数DATE_ADD() 增加日期/时间
- java迭代器不能修改集合值_关于使用迭代器对集合进行遍历时,不能对集合进行修改的论证...
- svn co 默认密钥' GNOME keyring
- BZOJ1938: [CROATIAN2010] ALADIN
- 【司法比赛】第三届“中国法研杯”司法人工智能挑赛(CAIL2020)即将启动
- Python编程输出所有的“水仙花数”
- linux版gaussian运行,【求助】gaussian 在linux不能运行?急急急 - 量子化学 - 小木虫 - 学术 科研 互动社区...
- 批量创建文件夹 在批量创建的文件夹下创建两个子文件夹
- windows - 更改用户账户名称(windows10)
- 生成无限制的微信小程序码
- My Seventy-seventh Page - 零钱兑换 - By Nicolas
- java put 请求_java发送put请求
- 赵小楼《天道》《遥远的救世主》深度解析(142)贫富差距化是常态,扶贫不是拉平平均值,而是强者去关注弱者
- 解决element的Table表格组件的高度问题( height只能是数字或者字符串 ),实现height: calc(100vh - 260px) 的效果