服务器日志备份到远端服务器

前一段时间,由于公司需要,需将线上环境的tomcat日志进行备份并上传到远端备份服务器,参考了网上一些帖子的方法,在这里写一点自己的总结。

拓扑:


以上拓扑中总共三台服务器,其中两台tomcat,一台备份日志服务器。

1.首先要做的就是写一个脚本,脚本内容大致是备份压缩上传:

[root@localhost ~]#vim baklog.sh
#!/bin/bash
systime=`date +%Y_%m_%d`                     #获取当前系统时间
days=5                                       #删除5天前的备份
tomcatuser=tomcat-server01                   #备份到此文件下            
Sbakpath=/data/bak/tomcat-log                #备份文件到该路径
bakname=$tomcatuser"_"$systime.tar.gz        #备份文件名      
Tpath=/server/war/log/*.log                  #需要备份的tomcat日志路径
Dpath=/baklog/tomcat-log                     #远端服务器日志存储路径

#开始备份压缩
cd $Sbakpath

mkdir -p $tomcatuser
cd $tomcatuser

tar -zcvf $bakname $Tpath

#删除5天前的备份
find $Sbakpath/$tomcatuser -type f -name "*.tar.gz" -mtime +$days -exec  rm -rf {} \;     #注意{} \中间有空格,-2代表强制scp命令使用协议ssh2,此语句命令
表示在$Sbakpath/$tomcatuser目录下查找5天前名为.tar.gz的文件
#上传到远程服务器
scp -2 $Sbakpath/$tomcatuser/$bakname [email protected]:$Dpath


2.添加脚本执行权限:
[root@localhost ~]#chmod +x baklog.sh

3.编辑定时配置:
[root@localhost ~]#crontab -e
0 21 * * * /data/bak/baklog.sh              #每天晚上9点开始备份压缩上传
保存重启定时服务
service crond restart

此脚本写在tomcat1和tomcat2服务器上,并设置定时运行。


4.由于上传至远端服务器需要进行密码验证,我们采取rsa公钥无密码登录

a.在tomcat1和tomcat2上分别执行以下命令生成公钥:

ssh-keygen -t rsa -P ''

b.在logserver服务器上创建以下文件,并赋予权限

[root@localhost /]#mkdir -p /root/.ssh/authorized_keys

[root@localhost /]#chmod 600 /root/.ssh/authorized_keys

c.把tomcat服务器下的/root/.ssh/id_rsa.pub 复制到logserver服务器的 /root/.ssh/authorized_keys文件里,用scp复制:

[root@localhost /]#scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys

这里也可以手动编辑,将tomcat /root/.ssh/id_rsa.pub文件里的公钥手动复制到logserver服务器的 /root/.ssh/authorized_keys文件里即可,使用vim命令。


d.由于还没有免密码登录的,所以要输入一次tomcat服务器的root密码。


你可能感兴趣的:(服务器日志备份到远端服务器)