linux日志文件的管理、备份及日志服务器的搭建

linux日志文件的管理、备份及日志服务器的搭建,第1张

日志文件存放目录: /var/log

[root@xing log]# cd /var/log

[root@xing log]# ls

messages:系统日志

secure:登录日志

————————————————

日志管理服务文件: vim /etc/rsyslog.conf

日志记录的日志级别:最不严重 ->最严重

debug, info, notice, warning, warn (same as warning), err, error (same

as err), crit, alert, emerg, panic (same as emerg)

测试提示:

[ming@xing etc]$ logger -p authpriv.emerg "==mingeror=="

[ming@xing etc]$

Message from syslogd@xing at Jul 18 11:00:41 ...

root: ==mingeror==

登录日志的错误信息同步写入 “/var/log/secure ” 文件

————————————————

日志的异地备份

日志的异地备份至关重要。防止别人拿到你的root权限;用命令:echo "" >/var/log/secure 直接清空你的登录日志。

配置需备份日志的客户机(172.168.0.254):

[root@xing etc]# vim rsyslog.conf

————————————————

配置文件修改:

#*.* @@remote-host:514

authpriv.* @@172.168.0.1:514

————————————————

[root@xing etc]# setenforce 0 //执行setenforce 0 表示 临时关闭 selinux防火墙。

[root@xing etc]# getenforce

Permissive

[root@xing etc]# service rsyslog restart

————————————————

配置日志记录服务器(172.168.0.1):

[root@xing etc]# vim rsyslog.conf

————————————————

开启接收端口模块

# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

———

配置备份的数据源及日志备份存放文件

:fromhost-ip,isequal,“172.168.0.254” /var/log/client/172.168.0.254.log

————————————————

[root@xing etc]# service rsyslog restart

———————

ss -antpl | grep 514

————————————————

注意:配置成功需关闭双方服务器的防火墙,或者修改防火墙配置。

创建脚本/root/script/backup.sh

# 该脚本应用于10多台普通的Linux应用服务器,多年来从未出过差错。

# 数据库备份较为特殊,这里不包含数据库备份。

# 因为脚本中含有FTP密码,所以FTP仅给予写权限较为安全,FTP中的老备份的定期删除任务由FTP服务器完成。

# 备份加入到自动任务中,每周六23:00执行,并写入日志,如下:

# 追加下面语句到/etc/crontab中

# 0 23 * * 6 root /root/script/backup.sh >>/root/script/backup.log 2>&1

#有注释版:

#!/bin/bash

#=====================================================

#author zhaoyn

#date 2010/12/31

#=====================================================

#参数设定

basedir=/opt/backup #备份存放的目录

days=15 #备份在本地保留天数

bakfiles="/root/script /etc" #需要备份的目录或文件,请不要使用快捷方式或通配符

ftpip=XXX.XXX.XXX.XXX #异地备份的FTP地址

ftpuser='username' #异地备份的FTP用户名

ftppw='password' #异地备份的FTP密码

echo =====================================================

date

cd $basedir

#删除备份目录中15天以前备份文件,不包含子目录

find -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \

for bakfile in $bakfiles

do

file=`basename $bakfile`

#压缩打包需要备份的目录,包括权限,文件命名包含当前时间

tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfile

#大文件打包前后,缓解磁盘压力,降低I/O错误概率

sleep 10s syncsync

done

#通过FTP上传当天备份的文件到异地

ftp -v -n -i $ftpip <<END

user $ftpuser $ftppw

bin

mput *$(date +%Y%m%d)*.tgz

bye

END

#无注释版:

#!/bin/bash

#=====================================================

#author zhaoyn

#date 2010/12/31

#=====================================================

basedir=/opt/backup

days=15

bakfiles="/root/script /etc"

ftpip=XXX.XXX.XXX.XXX

ftpuser='username'

ftppw='password'

echo =====================================================

date

cd $basedir

find -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \

for bakfile in $bakfiles

do

file=`basename $bakfile`

tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfile

sleep 10s syncsync

done

ftp -v -n -i $ftpip <<END

user $ftpuser $ftppw

bin

mput *$(date +%Y%m%d)*.tgz

bye

END

Mysql的备份,如果凌晨可以停止几分钟,那么强烈建议对Mysql执行物理备份,脚本如下

#!/bin/bash

#History

#=====================================================

#When Who What

#2010/3/24 Zhaoyn Create

#

#=====================================================

basedir=/opt/backup

updir=$basedir/updir

timenow=$(date +%Y%m%d-%H%M)

# 删除mysql十四天前的数据,注意,这里仅删除了mysql的tgz文件。

rm -f `find $basedir -name "mysql*.tgz" -mtime +14`

# 由于数据库在有连接的情况下,直接对数据文件打包是可能出问题的,所以这里我们在打包前要停用数据库,这样直接对数据文件打包,恢复时只需解压数据文件到新环境相应的目录即可,默认是/var/lib/mysql

# 如果白天也要进行数据库备份,请使用mysqldump命令,进行在线备份。恢复也挺方便的。

/etc/rc.d/init.d/mysqld stop

sleep 5s syncsync

tar -czpf $basedir/mysql.$timenow.tgz /var/lib/mysql

/etc/rc.d/init.d/mysqld start

#=====================================================

附件中的脚本文件是有DOS换行符(CR/LF)的,复制文件中的内容到SSH客户端没有问题,如果直接拷贝文件到Linux系统中,可先运行下面的命令:

mv *.txt *sh

dos2unix *.sh

最近做了一个文件的异地备份,采用网络挂载的方式,效果比之前用sync拷贝要方便的多。

也比之前简单的多,其实也就是几件事情。

首先是,需要备份的服务器和备份的服务器都装上nfs。

yum install nfs-utils

有的可能还需要单独安装一下rpcbind

那就

yum install rpcbind

接着在被挂载服务器编写配置文件

vim  /etc/exports

/root/work 192.168.0.3(rw,no_root_squash,no_all_squash,async)

/root/work 192.168.0.16(rw,no_root_squash,no_all_squash,async)

如像这样,授权了本地的/root/work 目录可以被两个服务器访问,权限是读写(rw)

这一部分就完成了。

接下来是需要备份的服务器:

安装玩nfs以后,在/mnt目录下建一个目录(通常都是在这个目录下,别问为什么?问就是通用习惯。)

cd  /mnt

mkdir backserver

这就完成了目录创建

接着也是最重要的一步

mount -t nfs 192.168.0.18:root/work/backup /mnt/backserver/

这条命令的意思是挂载192.168.0.18:root/work/backup目录到本机的/mnt/backserver/

-t 是指定挂载类型,nfs,就是网络文件系统的简称。

这样之后,本机的/mnt/backserver/存的文件实际上是存在192.168.0.18:root/work/backup目录下的。

接下来就是一个见的文件拷贝命令。

rsync -avz /usr/local/nginx /usr/local/tomcat  /mnt/backserver/09back

就把文件备份到192.168.0.18:root/work/backup目录下了。

实现自动备份就更简单了,直接把刚才的命令写入shell脚本

保存为backup.sh

然后加入系统定时计划

crontab -e

30 3 * * * sh /root/work/work/backup.sh

意思是每天三点执行一次脚本,就完成了自动异地备份。

整个过程还是很简答的,其中涉及一个cs的模式。

需要知道:

1,是客户端挂载到服务端。

2,服务端需要授予客户端访问权限。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8230636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存