如何保持Linux服务器间的文件同步(备用)

配置rsync
配置/etc/rsyncd.conf文件:

###########################################################################

uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log

[export]
path = /export
ignore errors
read only = true
list = false
hosts allow = 192.168.1.252
hosts deny = 192.168.1.0/24

[user01]
path = /home/user01/backup
ignore errors
read only = true
list = false
hosts allow = 192.168.1.252
hosts deny = 192.168.1.0/24

[user02]
path = /home/user02/user02
ignore errors
read only = true
list = false
hosts allow = 192.168.1.252
hosts deny = 192.168.1.0/24

###########################################################################

修改启动rsync文件
[root@tonykorn97 etc]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it
# allows crc checksumming etc.
service rsync
{
# disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
[root@tonykorn97 etc]#

客户端同步:
rsync -vzrtopg --progress export@192.168.1.250::export /export


经过测试用下面的方法比较好,可以删除那些DST中SRC没有的文件
rsync -vzrtopg --progress --delete 192.168.1.250::export /export
rsync -vzrtopg --progress --delete 192.168.1.250::user02 /home/user02/user02
rsync -vzrtopg --progress --delete 192.168.1.250::user01 /home/user01/backup


我们传输的命令模式是:
rsync [OPTION]... [USER@]HOST::SRC [DEST]

参数说明:
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
-r, --recursive 对子目录以递归模式处理
-t, --times 保持文件时间信息
-o, --owner 保持文件属主信息
-p, --perms 保持文件权限
-g, --group 保持文件属组信息

--progress 显示备份过程
--delete 删除那些DST中SRC没有的文件
--exclude "data/" 表示不对/home/user01/backup/data/目录下的文件进行备份

下面的命令可以传输不包含某个目录的文件
rsync -vzrtopg --delete --exclude "data/" --progress 192.168.1.250::user02 /home/user02/user02
rsync -vzrtopg --delete --exclude "data/" --progress 192.168.1.250::user01 /home/user01/backup

制作一个脚本:
[root@tonykorn9702 export]# cat autoexport.sh
#!/bin/bash
/usr/bin/rsync -vzrtopg --progress --delete 192.168.1.250::export /export
/usr/bin/rsync -vzrtopg --progress --delete 192.168.1.250::user02 /home/user02/user02
/usr/bin/rsync -vzrtopg --progress --delete 192.168.1.250::user01 /home/user01/backup
[root@tonykorn9702 export]# chmod 755 autoexport.sh
[root@tonykorn9702 export]# ./autoexport.sh
receiving file list ...
473 files to consider
./
autoexport.sh
73 100% 71.29kB/s 0:00:00 (xfer#1, to-check=471/473)

sent 92 bytes received 9076 bytes 18336.00 bytes/sec
total size is 147219805 speedup is 16058.01
[root@tonykorn9702 export]#

通过crontab设定,让这个脚本每30分钟运行一次。执行命令:
# crontab -e
输入以下一行:
30 * * * * * /export/autoexport.sh

上面的是整点的30分之想,后来更改为:
20,50 * * * * /export/autoexport.sh
让20和50分的时候执行。


出现的问题:
同步的时候有一些文件同步不了,
[root@tonykorn9702 user01]# rsync -vzrtopg --delete --exclude "backup/data/" --progress 192.168.1.250::user01 /home/user01
receiving file list ...
rsync: opendir ".ssh" (in user01) failed: Permission denied (13)
22 files to consider
IO error encountered -- skipping file deletion
./
rsync: send_files failed to open ".bash_history" (in user01): Permission denied (13)
rsync: send_files failed to open ".viminfo" (in user01): Permission denied (13)

sent 127 bytes received 755 bytes 1764.00 bytes/sec
total size is 86396 speedup is 97.95
rsync error: some files could not be backupferred (code 23) at main.c(1298) [generator=2.6.8]
[root@tonykorn9702 user01]#
在服务器端执行:
[root@tonykorn97 user01]# ls -al
total 60
drwxr-xr-x 5 user01 users 4096 Apr 4 2007 .
drwxr-xr-x 13 root root 4096 Oct 15 08:36 ..
-rwx--x--x 1 user01 users 7053 Apr 3 16:49 .bash_history
-rwxr-xr-x 1 user01 users 24 Jan 5 2007 .bash_logout
-rwxr-xr-x 1 user01 users 191 Jan 5 2007 .bash_profile
-rwxr-xr-x 1 root root 631 Jan 17 2007 .bashrc
-rwxr-xr-x 1 user01 users 237 Jan 5 2007 .emacs
-rwxr-xr-x 1 user01 users 120 Jan 5 2007 .gtkrc
drwxr-xr-x 3 user01 users 4096 Jan 16 2007 .kde
drwx--x--x 2 user01 users 4096 Mar 30 2007 .ssh
drwxr-xr-x 3 user01 users 4096 Mar 24 16:35 backup
-rwx--x--x 1 user01 users 3812 Apr 4 2007 .viminfo
-rwxr-xr-x 1 user01 users 136 Jan 5 2007 .zshrc
[root@tonykorn97 user01]# chmod +r .bash_history
[root@tonykorn97 user01]# chmod +r .viminfo

重新传输的时候出现:
[root@tonykorn9702 user01]# rsync -vzrtopg --delete --exclude "backup/data/" --progress 192.168.1.250::user01 /home/user01
receiving file list ...
rsync: opendir ".ssh" (in user01) failed: Permission denied (13)
22 files to consider
IO error encountered -- skipping file deletion
.bash_history
7053 100% 6.73MB/s 0:00:00 (xfer#1, to-check=20/22)
.viminfo
3812 100% 3.64MB/s 0:00:00 (xfer#2, to-check=10/22)

sent 127 bytes received 2563 bytes 5380.00 bytes/sec
total size is 86396 speedup is 32.12
rsync error: some files could not be backupferred (code 23) at main.c(1298) [generator=2.6.8]
[root@tonykorn9702 user01]#


[root@tonykorn9702 user01]# rsync -vzrtopg --delete --exclude "user02/data/" --progress posftp@192.168.1.250::user02 /home/user02
receiving file list ...
rsync: link_stat "." (in user02) failed: Permission denied (13)
0 files to consider

sent 19 bytes received 17 bytes 72.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be backupferred (code 23) at main.c(1298) [receiver=2.6.8]
[root@tonykorn9702 user01]#


出现这些问题的原因估计应该是用户目录下的隐藏文件造成的。
原来/etc/rsyncd.conf文件中设置的目录是/home/user01,后台设置的是/home/user01/backup.设置后就可以同步。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值