shell脚本定时备份日志===logBackup.sh

Posted heidi-boke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本定时备份日志===logBackup.sh相关的知识,希望对你有一定的参考价值。

定时备份日志

设置执行权限

[root@VM_0_10_centos shellScript]# chmod a+x logBackup,sh

脚本内容

[root@VM_0_10_centos shellScript]# cat logBackup,sh
#!/bin/bash
#===========================================
# BACKUP LOGS
#===========================================
# 设置显示的日期格式:年-月-日
time=`date +%Y-%m-%d`

# 备份路径
path=/usr/local/apache-tomcat-8.5.45/logs
cd $path

# 备份日志,格式为catalina.2019-10-08.log
cat catalina.out > $path/catalina.$time.log

# 清空已备份好的日志
cat /dev/null > $path/catalina.out

# 将25天之前的日志打包好,然后删除
total=`find $path -name "*.log" -mtime +25 | wc -l`
if [ $total -eq 0 ];then
  echo "[info] 没有25天之前的日志";
else
  find $path -name "*.log" -mtime +25 | xargs tar -zcf /tmp/log_$time.tar.gz;
  find $path -name "*.log" -mtime +25 | xargs rm -rf \;
fi

# 最后设置好定时任务即可,每天凌晨定时执行
# 0 0 * * * /usr/local/shellScript/logBackup.sh

分析

1)先定义备份格式,和备份路径,切换到备份路径下进行备份操作

2)备份日志格式为catalina.2019-10-08.log,并清空备份好的日志

3)统计查询25天之前的日志总数

4)判断是否有25天之前的日志,如果有则将25天之前的日志打包备份到/tmp目录下;如果没有则统计的总数等于0,不进行备份操作,并输出提示信息

5)设置定时任务

设置定时任务

[root@VM_0_10_centos shellScript]# crontab -e
0 0 * * * /usr/local/shellScript/logBackup.sh

 

以上是关于shell脚本定时备份日志===logBackup.sh的主要内容,如果未能解决你的问题,请参考以下文章

常见的一些shell脚本书写,定时删除,压缩备份

nodejs 定时调用shell脚本来备份数据库和日志文件并发送到邮箱

shell脚本—根据文件个数定时备份(转载)

Linux下使用crontab定时备份日志

shell脚本 每天定时进行自动备份实战脚本~~~

用shell脚本实现定时备份数据库