rsync题目

某公司里有一台NFS服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他 机器上做一个周期性定时备份。要求如下:

每天晚上00点整在NFS服务器nfs01上打包备份网站程序目录等并通过rsync命令推送到备份服务器backup上备份保存(备份思路 可以是先在本地按IP地址+日期打包,然后再利用rsync推送到备份服务器上)。

具体要求如下:

1)NFS服务器nfs01和备份服务器backup的备份目录必须都为/backup;

2)NFS服务器站点目录假定为(/var/www/html);

3)NFS服务器脚本目录假定为(/server/scripts);

4)NFS服务器站点日志目录假定为(/app/logs);

5)NFS服务器个人配置文件目录路径(/etc/rc.d/rc.local);

6)NFS服务器定时任务文件路径为(/var/spool/cron/root);

7)将以上文件或目录打包(2-6条所示)推送到备份服务器backup ;

8)NFS服务器本地仅保留7天内的备份;

9)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱;

10)备份服务器上每周六的数据都保留,其他备份仅保留180天备份。

答:

第一步:Rsync守护进程模式配置

1)服务端部署流程

一:检查软件是否安装

[root@backup ~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

没安装yum -y install rsync xinetd

二:编写配置文件

uid = rsync

gid = rsync

use chroot = no

max connections = 200

timeout = 300

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

ignore errors

read only = false

list = false

hosts allow = 172.16.1.0/24

hosts deny = 0.0.0.0/32

auth users = rsync_backup

secrets file = /etc/rsync.password

[backup]

comment = “backup dir by sung”

path = /backup

三:创建备份目录管理用户

[root@backup ~]# useradd rsync -M -s /sbin/nologin

四:创建备份目录

[root@backup ~]# mkdir /backup

[root@backup ~]# chown -R rsync.rsync /backup

五:创建认证文件

[root@backup ~]# echo “rsync_backup:sung123”  >>/etc/rsync.password

[root@backup ~]# chmod 600 /etc/rsync.password

六:启动rsync服务

[root@backup ~]# rsync –daemon

七:检查rsync是否开启

[root@backup ~]# ps -ef|grep rsync

root       1539      1  0 03:58 ?        00:00:00 rsync –daemon

root       1557   1460  0 04:03 pts/0    00:00:00 grep rsync

[root@backup ~]# netstat -lntup|grep rsync

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1539/rsync         

tcp        0      0 :::873                      :::*                        LISTEN      1539/rsync   

2)客户端部署流程

一:确认软件是否安装

[root@backup ~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

二:创建认证密码文件

[root@nfs01 ~]# echo “sung123” >>/etc/rsync.password

[root@nfs01 ~]# chmod 600 /etc/rsync.password

三:进行数据备份测试

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup –password-file=/etc/rsync.password

sending incremental file list

hosts

sent 189 bytes  received 27 bytes  432.00 bytes/sec

total size is 352  speedup is 1.63

第二步:在NFS创建目录

[root@nfs01 ~]# mkdir /backup

第三步:在NFS创建shell脚本

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

IP=$(ifconfig eth0|awk -F “[ :]+” ‘NR==2{print $4}’)

Date=$(date “+%F_%w”)

IPD=/backup/”$IP”_”$Date”.tar.gz

file=”/var/www/html /server/scripts /app/logs /etc/rc.d/rc.local /var/spool/cron/root”

funtar (){

tar -czPf “$IPD” $file

}

funrm(){

rm -rf `find /backup -name \*.tar.gz -mtime +7`

}

main (){

        funtar

        funrm

        rsync -az $IPD rsync_backup@172.16.1.41::backup –password-file=/etc/rsync.password

}

main

第四步:在NFS创建cron

00 00 * * * /bin/sh /root/rsc.sh >/dev/null 2>&1

第五步:在Rsync安装邮件服务

[root@backup ~]#yum -y install mailx

[root@backup ~]#yum -y install sendmail

[root@backup ~]#service postfix restart

[root@backup ~]# cat /etc/mail.rc

set from=”*****@126.com ” smtp=”smtp.126.com”

set smtp-auth-user=”*****@126.com” smtp-auth-password=”******”

set smtp-auth=login

[root@backup ~]# echo 123|mail -s “123” *****@126.com

注smtp-auth-password为授权码

第六步:在Rsync创建shell

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

IP=192.168.179.31

Date=$(date “+%F_%w”)

IPD=/backup/”$IP”_”$Date”.tar.gz

#echo $IPD

if [ -f $IPD ];then

    echo “`date +%F` Backup success” >/backup/`date +%F`.log

else

    echo “`date +%F` Backup failed” >/backup/`date +%F`.log

fi

mail -s “backup” swwcyy@126.com < /backup/`date +%F`.log

rm -f `find /backup -name “*_[^6].tar.gz” -mtime +180`

第七步:在Rsync创建cron

[root@backup ~]# crontab -l

00 01 * * * /bin/sh /root/mr.sh >/dev/null 2>&1

测试

Rsync和NFS时间2019-1-24 00:00:00

Rsync和NFS时间2019-1-24 01:00:00

Rsync时间2019-1-25 01:00:00;NFS时间2019-1-24 01:00:00

发表评论

电子邮件地址不会被公开。 必填项已用*标注