配置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.设置后就可以同步。