实践排除复制:
NFS01:
[root@nfs01 ~]# mkdir /data -p
[root@nfs01 ~]# cd /data
[root@nfs01 /data]# touch {a..d}
[root@nfs01 /data]# ls
a b c d
--exclude 排除参数
例:排除 a b
[root@nfs01 /data]# rsync -avz /data/ --exclude=a --exclude=b [email protected]::backup
sending incremental file list
./
c
d
排除1到4
[root@nfs01 /data]# touch {1..5}
[root@nfs01 /data]# rsync -avz /data/ --exclude={1..4} [email protected]::backup
sending incremental file list
./
5
a
b
[root@nfs01 /data]# rsync -avz /data/ --exclude={1,3,a} [email protected]::backup
sending incremental file list
2
4
--exclude-from 从文件排除
[root@nfs01 /data]# rsync -avz /data/ --exclude-from=./paichu.txt [email protected]::backup
sending incremental file list
./
16
17
18
19
20
paichu.txt
1)最简单的实现,可以在配置文件结尾加如下内容(特殊底纹部分):
[root@backup ~]# cat /etc/rsyncd.conf
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600
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 = welcome to oldboyedu backup.
path = /backup/
[data] #<==新模块。
path = /data/ #<==新备份目录。
#除了增加以上两行外,读者也可以设定更多的独立配置参数,例如:独立虚拟用户,独立密码文件等。
2)建立目录并授权。
[root@backup ~]# mkdir -p /data
[root@backup ~]# chown -R rsync.rsync /data
[root@backup ~]# ls -ld /data
drwxr-xr-x 2 rsync rsync 6 4月 16 10:04 /data
3)重启rsync服务(只要修改配置,就考虑重载服务)
[root@backup ~]# systemctl restart rsyncd
4)从客户端访问测试
[root@backup ~]# ls /data
etc
1、内部人员产生的数据(定时备份足矣):
程序员开发代码(他电脑上)==>代码服务上(git/svn代码版本管理)==>测试环境测试===>正式环境
原则上程序代码可以不备份。
运维人员,写个定时任务,写个备份脚本,更改或增加服务配置rsyncd.conf,需要备份
运维人员修改配置(测试服务器)==>代码服务器上(git/svn代码版本管理)==>测试环境测试===>正式环境
原则上运维人员的变更可以不备份。
2、用户产生的数据(必须实时备份)
图片、视频等文件是放在存储服务器上的,任意时刻都可能传上来,必须实时备份。
文本(博客文章),放在数据库里,,任意时刻都可能发布,必须实时备份。
第一个里程碑:
41搭建好rsync服务,并在31、7上测试成功。
第二个里程碑 开发脚本打包备份
/backup 备份目录
/var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs 需要备份的内容
模拟创建:
[root@nfs01 ~]# mkdir -p /server/scripts
[root@web01 ~]# mkdir -p /server/scripts /var/html/www /app/logs
web01:
[root@web01 ~]# mkdir -p /backup
[root@web01 ~]# ls -ld /backup/
drwxr-xr-x 2 root root 6 4月 16 11:36 /backup/
[root@web01 /]# tar zcvhf /backup/bak_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs
tar: 从成员名中删除开头的“/”
/var/spool/cron/root
/etc/rc.local
/server/scripts/
/var/html/www/
/app/logs/
[root@web01 /]# ls /backup/
bak_2019-04-16_2.tar.gz
写脚本:
[root@web01 /server/scripts]# vim beifen.sh
#!/bin/bash
#tar zcf /backup/app.logs.$(date +%F).tar.gz /app/logs
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
export RSYNC_PASSWORD=oldboy
IP=$(hostname -i)
mkdir -p /backup/$IP
#打包
tar zchf /backup/beifen.$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /se
rver/scripts /var/html/www /app/logs &>/dev/null &&\
#删除
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\
#推送
rsync -avz /backup/[email protected]::backup &>/dev/null
[root@nfs01 /server/scripts]# #采集人的指纹
[root@nfs01 /server/scripts]# md5sum oldboy.txt >zhiwen.log
[root@nfs01 /server/scripts]# cat zhiwen.log
348bd3ce10ec00ecc29d31ec97cd5839 oldboy.txt
[root@nfs01 /server/scripts]# #校验
[root@nfs01 /server/scripts]# md5sum -c zhiwen.log
oldboy.txt: 确定
实践:
推:[root@web01 /backup]# rsync -avz /backup/beifen.2019-04-16.tar.gz [email protected]::backup
拉:rsync -avz [email protected]::backup /backup/