`
realgzq
  • 浏览: 1097 次
文章分类
社区版块
存档分类
最新评论

log 目录打包 shell

阅读更多
日志打包的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 "------------------------------------------"


分享到:
评论

相关推荐

    jenkins 打包 ios shell命令

    ### Jenkins 打包 iOS 使用 Shell 命令详解 #### 一、背景介绍 在持续集成(CI)的流程中,使用自动化工具如Jenkins来构建iOS应用是常见且高效的做法。通过Shell脚本实现自动化的打包过程可以极大提高开发效率,并...

    日志拷贝打包获取前n天日期

    shell的一点基础应用,将符合条件的log拷贝到指定目录打成tar包

    linux打包排除目录

    - **自定义脚本**:对于复杂的打包需求,可以编写shell脚本来自动化整个打包过程,提高效率。 ### 结论 通过以上介绍可以看出,使用`tar`命令进行Linux打包操作时,利用`--exclude`选项可以轻松排除指定的目录,...

    shell脚本练习

    "by.tar.gz"文件则可能是一个打包的shell脚本项目,通常用于归档或传输目的。使用tar命令可以创建和解压这个文件。`tar -zxvf by.tar.gz`会解压出其中的内容。在实际项目中,这可能是一个完整的shell脚本库,包含了...

    100个shell脚本合集

    9. 自动发布Java项目:shell脚本也可以用于自动化Java项目的构建、打包和部署,例如使用mvn命令进行Maven项目构建,然后将结果复制到目标服务器。 10. 入侵与检测:结合日志分析和防火墙规则,shell脚本可以实现...

    oracle自动备份shell脚本

    3、本脚本备份输出为zip打包文件,打包文件保存在zip目录下面。 4、本脚本支持备份log保存,log保存在logs目录下。 5、本脚本支持远程备份,备份命令使用的lftp,具体细节参照lftp的使用细则,安装过程中会提示操作...

    shell脚本学习之调用脚本将文件打包zip的方法示例

    总结一下,通过学习这个示例,我们可以了解如何使用Shell脚本创建一个打包功能,将特定目录下的文件打包成ZIP格式,并通过Python调用来实现自动化。这对于日常的文件管理或备份操作非常有用。在实际应用中,可以根据...

    shell学习必背

    5. `tar`:用于打包和压缩文件。`cvf`用于创建新的归档文件,`xvf`用于解压。 6. `rm`:删除文件或目录。`-rf`强制删除,不提示确认。 7. `grep`:在文件内容中搜索指定字符串。`-c`统计匹配次数,`-i`忽略大小写。 ...

    linux shell脚本攻略

    - **实现思路**:通过 `tar` 命令打包文件夹,并使用 `date` 添加时间戳作为备份标识。 - **脚本示例**: ```bash #!/bin/bash DIR="/path/to/folder" BACKUP_DIR="/path/to/backup" TIMESTAMP=$(date +%Y%m%...

    dumplog,Android日志实用程序.zip

    通过运行dumplog命令,可以将整个系统的日志信息打包成一个文件,方便开发者在本地进行分析,无需连接到设备或使用ADB(Android Debug Bridge)进行实时查看。 dumplog项目是一个开源的解决方案,这意味着开发者...

    shell编程实例解析,shell基础语法详解

    # 将所有当前测试相关文件打包 tar -cvf testResult.tar input output # 删除临时目录 rm -rf input output ``` 通过运行这个脚本,所有与测试相关的繁琐操作都可以自动完成,极大减轻了测试人员的工作负担。 ####...

    Android系统adb_shell命令大全.

    - `-w`:只更新日志文件`/var/log/wtmp`,不会实际重启。 - `-d`:不记录重启信息(`-n`参数已包含此选项)。 - `-f`:强制立即重启,即使正在执行操作。 - `-i`:在重启前关闭所有网络相关设备。 2. `mount`...

    Shell执行/调用Java/Jar程序例子

    在IT行业中,Shell脚本和Java程序经常相互配合,实现自动化任务和系统管理。这篇博客“Shell执行/调用Java/Jar程序例子”探讨了如何使用Shell脚本来启动和控制Java应用程序,特别是JAR文件。这里我们将深入讲解相关...

    checkLog.tar.gz

    通常,系统和服务产生的日志会被存储在"/var/log"目录下,各种服务和应用的日志文件会分别存放在这里的不同文件中。例如,Apache的HTTP服务器日志通常在"/var/log/apache2",而系统级别的消息则记录在"/var/log/...

    shell cron定时脚本 内附ftp上传 每天2点 定时导出数据 上传到指定目录

    它可能包括`tar`命令来打包文件,`gzip`或`bzip2`进行压缩,以及可能使用`find`或`ls`来定位需要处理的文件。例如,一个简单的`unload.sh`脚本可能如下: ```bash #!/bin/bash # 导出数据部分 # 这里可能包含数据库...

    常用的shell命令.pptx

    14. **tar**: 文件打包和压缩工具,如`tar -czvf archive.tar.gz file`用于打包压缩。 15. **vi/vim**: 文本编辑器,`gg=G`将整篇文档格式化,`+n`跳转到第n行,`(x)`删除当前行,`dd`删除当前行。 16. **ln**: 创建...

    iOS 开发中用到的 shell 脚本.zip

    7. **日志收集与分析**: 在调试过程中,shell脚本可以用来收集和整理设备或模拟器的log,便于分析问题。例如,`tail -f`命令可以实时查看特定的日志文件。 8. **环境变量设置**: 在shell脚本中,可以方便地设置和...

    linux命令(shell)

    - `/var/log`目录下的各种日志文件,如系统日志、应用日志等。 - `syslog`服务和`journalctl`(Systemd系统)的日志管理。 14. **用户和组管理**: - `adduser`/`useradd`:创建新用户。 - `passwd`:修改用户...

Global site tag (gtag.js) - Google Analytics