日志打包的shell脚本, 可以添加到crontab中, 每天定时执行,将一天24时每小时的日志文件,合并打包到一个文件中, 并按照月份分组存放。
git:https://github.com/realgzq/logPatchShell
#!/bin/bash
# Help function
function HELP
{
echo "--------log4j log patch shell,coding by realgzq----------"
echo "The log file name must be ended with format yyyy-MM-dd-XX or yyyy-MM-dd.XX, 2015-08-08-16"
echo "arg1: the path of the log folder"
echo "arg2: the log file initial string, for example the log file name console.2016-04-12-00, this arg should be console."
echo "arg3: the days of patching file before today"
echo "Eg: /app/shell/tar_log.sh /log/tangren-server-web/ info_tangren-server.log. 2"
echo "if you want patch log file daily please config the /etc/crontab file like this:"
echo "13 0 * * * tangren /app/shell/tar_log.sh /log/tangren-erp-web/ console.log- 2"
exit 1
}
if test -z "$1" || test -z "$2" ||test -z "$3"
then
HELP
fi
day=$3
#echo ${day}
cmd=`printf "%s%s %s" "date -d\"" "${day}" "days ago\" +%Y-%m-%d"`
#echo "----------------------------------------------------------"
#echo $cmd
#echo "----------------------------------------------------------"
name=`eval $cmd`
#echo ${day}
cmd=`printf "%s%s %s" "date -d\"" "${day}" "days ago\" +%Y-%m"`
#echo "----------------------------------------------------------"
#echo $cmd
#echo "----------------------------------------------------------"
month_day_str=`eval $cmd`
#name=`date +%Y-%m-%d --date\\="${day} days ago"`
#name=`date -d'7 days ago' +%Y-%m-%d`
#echo $name
nametitle=$2
nameall=""
echo `date '+%Y-%m-%d %H:%M:%S'`" start patching"
cd $1
#if the patch folder not exist, creat it
if [ ! -d "bak/"$month_day_str ];
then
mkdir bak/$month_day_str
fi;
for((i=0;i<24;i++));
do
if [ $i -lt 10 ]
then
if [ -f $nametitle$name-0$i ]
then
nameall=`printf "%s %s" "$nameall" "$nametitle$name-0$i"`
fi;
if [ -f $nametitle$name.0$i ]
then
nameall=`printf "%s %s" "$nameall" "$nametitle$name.0$i"`
fi;
else
if [ -f $nametitle$name-$i ]
then
nameall=`printf "%s %s" "$nameall" "$nametitle$name-$i"`
fi;
if [ -f $nametitle$name.$i ]
then
nameall=`printf "%s %s" "$nameall" "$nametitle$name.$i"`
fi;
fi
done
echo "tar:$nameall => $nametitle$name.tar.gz"
echo "------------------------------------------"
tar zcf "bak/"$month_day_str"/"$nametitle$name.tar.gz $nameall
if [ -f "bak/"$month_day_str"/"$nametitle$name.tar.gz ]
then
echo "rm:$nameall"
rm -rf $nameall
fi;
sleep 1
echo '---'$name' patch finished ---'
echo `date '+%Y-%m-%d %H:%M:%S'`" patch finished!"
echo "------------------------------------------"
分享到:
相关推荐
shell的一点基础应用,将符合条件的log拷贝到指定目录打成tar包
3、本脚本备份输出为zip打包文件,打包文件保存在zip目录下面。 4、本脚本支持备份log保存,log保存在logs目录下。 5、本脚本支持远程备份,备份命令使用的lftp,具体细节参照lftp的使用细则,安装过程中会提示操作...
使用方法,先将以下脚本保存为 cutlog.sh,放在/.../bin/bash#function:cut nginx log files shell#设置您的网站访问日志保存的目录,我的统一放在了/home/wwwlogs目录下log_files_path=”/home/wwwlogs/”log_files_d
还是今天再写一个自动化打包脚本,用到了从路径名中获取最后的文件名。这里记录一下实现过程。当然,最后我也会给出官方的做法。(ps:很囧,实现完了才发现原来Bash Shell有现成的函数) 获取文件名 假设给定的路径...
将vim挂起(暂停):ctrl+z,暂停后可进行其他shell操作,完了之后可通过 fg 命令切换回vim界面继续编辑 :MR:查看历史文件记录(注意:MR大写) :sp 横向切换界面窗口 :vsp 纵向切换界面窗口 12.命令rz、sz——文件...
将maven项目打包进行打包,找到target文件夹,将里面的.jar后缀的文件上传到Linux系统中,在Linux系统下cd到所在的目录,输入Java -jar boot工程.jar 命令,此时springboot项目就启动成功了。但是由于这种方式启动的...
增加自动构建功能,可指定每天或每周定时构建 增加设置对话框,大部分设置多...修改log,编译后运行log指令会弹出上一次的编译日志 修改编译日志格式 修改flexbuild配置文件格式(flexbuild.xml) 增加多语言界面支持
12、tar打包压缩testuser帐号主目录下的所有文件。 13、用U盘把上一步打包压缩文件拷贝到U盘上。 14、执行userdel -r testuser,执行rm -fr myshare 题目创建人 题目注释 把打包压缩文件提交即可。 ...
对于进行nuget打包时,有时我们需要添加一个配置文件,就是一些文本文件,而这些文件我们在网站发布时需要同时复制到输出目录,否则会出现文件丢失的问题,我们在打包时通过添加powershell脚本来解决它。 一般添加...
1.69 tar指令:打包同时压缩/解压缩文件 1.70 tee 指令:从标准输入读取数据到标准输出,同时保存为文件 1.71 tftp指令:传输文件 1.72 tmpwatch指令:删除临时文件 1.73 touch指令:更改文件/目录时间 1.74 umask...
要更新此index.yaml的charts ,请将打包图表的副本放入charts文件夹中,并通过从该index.yaml的根目录运行以下命令来(重新)构建index.yaml : helm repo index . --url ...
它提供了您可以毫不费力地直接利用的统包功能,打包为可变或不可变应用程序。 概述 热部署:Karaf 支持应用热部署(在 deploy 目录中)。 动态配置:Karaf 使用中央位置(etc 目录)进行配置(以不同的格式、属性...
无控制台: console.log已被禁止用于日志可观察性。 未使用的导入:启用此功能可以清除不需要的导入。 虚拟机 Nvmrc 可以将您的运行时环境设置为该项目的正确 Node 版本。 运行命令nvm use 。 更漂亮 提交任何支持...
13.4.1 SVR4流log驱动程序 315 13.4.2 4.3+BSD syslog设施 316 13.5 客户机-服务器模型 319 13.6 小结 319 习题 319 第14章 进程间通信 320 14.1 引言 320 14.2 管道 320 14.3 popen和pclose函数 325 14.4 协同进程 ...
在 Unix 中,你需要将 RAR 命令行参数置于单引号或双引号中,防止被 Shell 解释。例如,这个命令将从当前目录中所有的 RAR 压缩文件中解压的 *.asm 文件: rar e '*.rar' '*.asm' 命令可以是下列中的任何一个:...
文档2 Java文档3 swagger 4 log4j 5 junit 6 H2数据库7执行器 Spring Boot Web MVC快速入门 该示例演示了如何在Kubernetes或OpenShift上使用Spring Boot和Spring MVC来实现REST服务。 建造 这个例子可以用 mvn ...
13.4.1 SVR4流log驱动程序 315 13.4.2 4.3+BSD syslog设施 316 13.5 客户机-服务器模型 319 13.6 小结 319 习题 319 第14章 进程间通信 320 14.1 引言 320 14.2 管道 320 14.3 popen和pclose函数 325 14.4 协同进程 ...
13.4.1 SVR4流log驱动程序 13.4.2 4.3+BSD syslog设施 13.5 客户机-服务器模型 13.6 小结 习题 第14章 进程间通信 14.1 引言 14.2 管道 14.3 popen和 pclose函数 14.4 协同进程 14.5 FIFO 14.6 系统V IPC 14.6.1 ...