项目需要给脚本,tomcat的日志进行备份,其中涉及到对文件夹的备份,对日志文件的备份。
1、对文件夹的备份。
需要把tomcat的 webapps conf两个文件夹一起打包备份下backup下。思路:由于文件夹这些是不长发生变化的,所以备份后保存一定天数,没有发现问题即可删除。
打包命令
cd /home/user/app/tomcat
tar -zcvf /home/user/app/backup/backup.tar.gz webapps conf
利用sh脚本
#!/bin/bash
source ~/.bash_profile
timetab=`date "+%Y%m%d%H%M%S"`
backupRoot=/home/user/app/backup/
backupFile=backup_${timetab}.tar.gz
cd /home/user/app/tomcat
tar -zcvf ${backupRoot}/${backupFile} webapps conf
#删除备份半个月前的备份包
find ${backupRoot} -mtime +14 -name "*.tar.gz" -exec rm -rf {} \;
接下来需要往crontab添加计划
crontab -e
00 18 * * * sh /脚本的名称
保存即可。需要测试脚本的执行情况可以直接 sh 脚本名称运行即可。
2、备份日志文件
对tomcat的日志文件备份,思路:日志文件主要是提供后面查询使用的,为了方便运维人员查询,所以需要将历史的日志打包移走,只保留近期的日志即可。
#!/bin/bash
source ~/.bash_profile
timetab=`date "+%Y%m%d%H%M%S"`
backupdate=`date -d "-1month" "+%Y%m"`
backupRoot=/home/user/app/backup
targetFile=/home/user/app/tomcat/logs
backupFile=tomcat_logs_${backupdate}_${timetab}.tar.gz
find -mtime +30 |xargs tar -zcvf ${backupRoot}/${backupFile}
find ${targetFile} -mtime +30 -exec rm -rf {} \;
同样的添加计划。而这里需要的是一个备份一次。
crontab -e
00 18 1 * * sh /脚本的名称
说明:mtime即modify time,指文件内容被修改的时间。为什么要做日志备份,源自于日志太大了,不便于查看,所以需要先做每天的日志分割。
思路:将catalina.out文件复制成带有时间后缀的文件,再将catalina.out文件清空,即日志分割。