日志打包的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 命令详解 #### 一、背景介绍 在持续集成(CI)的流程中,使用自动化工具如Jenkins来构建iOS应用是常见且高效的做法。通过Shell脚本实现自动化的打包过程可以极大提高开发效率,并...
shell的一点基础应用,将符合条件的log拷贝到指定目录打成tar包
- **自定义脚本**:对于复杂的打包需求,可以编写shell脚本来自动化整个打包过程,提高效率。 ### 结论 通过以上介绍可以看出,使用`tar`命令进行Linux打包操作时,利用`--exclude`选项可以轻松排除指定的目录,...
"by.tar.gz"文件则可能是一个打包的shell脚本项目,通常用于归档或传输目的。使用tar命令可以创建和解压这个文件。`tar -zxvf by.tar.gz`会解压出其中的内容。在实际项目中,这可能是一个完整的shell脚本库,包含了...
9. 自动发布Java项目:shell脚本也可以用于自动化Java项目的构建、打包和部署,例如使用mvn命令进行Maven项目构建,然后将结果复制到目标服务器。 10. 入侵与检测:结合日志分析和防火墙规则,shell脚本可以实现...
3、本脚本备份输出为zip打包文件,打包文件保存在zip目录下面。 4、本脚本支持备份log保存,log保存在logs目录下。 5、本脚本支持远程备份,备份命令使用的lftp,具体细节参照lftp的使用细则,安装过程中会提示操作...
总结一下,通过学习这个示例,我们可以了解如何使用Shell脚本创建一个打包功能,将特定目录下的文件打包成ZIP格式,并通过Python调用来实现自动化。这对于日常的文件管理或备份操作非常有用。在实际应用中,可以根据...
5. `tar`:用于打包和压缩文件。`cvf`用于创建新的归档文件,`xvf`用于解压。 6. `rm`:删除文件或目录。`-rf`强制删除,不提示确认。 7. `grep`:在文件内容中搜索指定字符串。`-c`统计匹配次数,`-i`忽略大小写。 ...
- **实现思路**:通过 `tar` 命令打包文件夹,并使用 `date` 添加时间戳作为备份标识。 - **脚本示例**: ```bash #!/bin/bash DIR="/path/to/folder" BACKUP_DIR="/path/to/backup" TIMESTAMP=$(date +%Y%m%...
通过运行dumplog命令,可以将整个系统的日志信息打包成一个文件,方便开发者在本地进行分析,无需连接到设备或使用ADB(Android Debug Bridge)进行实时查看。 dumplog项目是一个开源的解决方案,这意味着开发者...
# 将所有当前测试相关文件打包 tar -cvf testResult.tar input output # 删除临时目录 rm -rf input output ``` 通过运行这个脚本,所有与测试相关的繁琐操作都可以自动完成,极大减轻了测试人员的工作负担。 ####...
- `-w`:只更新日志文件`/var/log/wtmp`,不会实际重启。 - `-d`:不记录重启信息(`-n`参数已包含此选项)。 - `-f`:强制立即重启,即使正在执行操作。 - `-i`:在重启前关闭所有网络相关设备。 2. `mount`...
在IT行业中,Shell脚本和Java程序经常相互配合,实现自动化任务和系统管理。这篇博客“Shell执行/调用Java/Jar程序例子”探讨了如何使用Shell脚本来启动和控制Java应用程序,特别是JAR文件。这里我们将深入讲解相关...
通常,系统和服务产生的日志会被存储在"/var/log"目录下,各种服务和应用的日志文件会分别存放在这里的不同文件中。例如,Apache的HTTP服务器日志通常在"/var/log/apache2",而系统级别的消息则记录在"/var/log/...
它可能包括`tar`命令来打包文件,`gzip`或`bzip2`进行压缩,以及可能使用`find`或`ls`来定位需要处理的文件。例如,一个简单的`unload.sh`脚本可能如下: ```bash #!/bin/bash # 导出数据部分 # 这里可能包含数据库...
14. **tar**: 文件打包和压缩工具,如`tar -czvf archive.tar.gz file`用于打包压缩。 15. **vi/vim**: 文本编辑器,`gg=G`将整篇文档格式化,`+n`跳转到第n行,`(x)`删除当前行,`dd`删除当前行。 16. **ln**: 创建...
7. **日志收集与分析**: 在调试过程中,shell脚本可以用来收集和整理设备或模拟器的log,便于分析问题。例如,`tail -f`命令可以实时查看特定的日志文件。 8. **环境变量设置**: 在shell脚本中,可以方便地设置和...
- `/var/log`目录下的各种日志文件,如系统日志、应用日志等。 - `syslog`服务和`journalctl`(Systemd系统)的日志管理。 14. **用户和组管理**: - `adduser`/`useradd`:创建新用户。 - `passwd`:修改用户...