定时将应用日志移动到指定目录
2018-01-04 14:44
197 查看
编写背景:
多个后台应用的日志分别在各个应用下面的logs下面info.log、debug.log、error.log,没隔一天会将这三个日志加上日期(但文件名最后有一个空格),先需要将所有有日期的日志放到同一目录,当天的日志每隔一小时同步一次。
定时任务设定
vi /etc/corntab
定时将日志输出到指定目录,并打包(单个文件打包)【bakLog.sh】
定时将日志输出到指定目录,并打包(同一日期日志放到同一文件夹,再将文件夹打包)【bakLog.sh】
定时同步日志到指定目录【getLog.sh】
多个后台应用的日志分别在各个应用下面的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
相关文章推荐
- Linux CRON定时执行JAR程序时,log4j日志无法输出到指定目录的问题
- linux 机器定时删除指定目录的过期日志
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- Linux服务器配置WEB应用日志文件到指定目录
- 查找指定目录下的所有日志文件*.log perl
- 多线程_定时删除指定的带内容目录
- rman异常案例二: 归档日志被人移动到其他目录,导致数据库恢复异常(续)
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- Linux使用find查找最后修改时间超过三天的文件并移动到指定目录(附:find找出文件并清空)
- nohup后台执行脚本并输入日志到指定目录 &
- 用脚本实现移动某目录下文件名符合指定规则的文件到另一个目录的功能
- Python 查找指定目录下.txt文件并移动到指定目录
- Web应用中Log4j与JNDI结合2 -- JNDI指定日志路径
- 使用Flex和Flash Builder创建员工目录移动应用实例
- alfresco目录定时归档,销毁,还原,归档日志的开发截图
- Windows 定时删除指定路径下N天前的日志文件
- tomcat 中设置启动应用指定目录下的项目
- nginx日志通过rsyslog传入到日志服务器指定目录
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- Redis使用守护进程启动sentinel并指定其日志目录