实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。
★方式一:
一、服务器端(例:10.0.0.1*):
1、创建用户和组
groupadd www -g 48
useradd -u 48 -g www www
mkdir -p /opt/htdocs
chmod +w /opt/htdocs
chown www:www /opt/htdocs
2、编辑rsync的配置文件
vi /etc/rsyncd.conf
输入以下内容:
引用
uid=www
gid=www
max connections=10
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[zhangyan]
path=/opt/htdocs
comment = my htdocs
ignore errors
read only = no
hosts allow=10.0.0.21 10.0.0.22
3、启动rsync服务器端
/usr/bin/rsync --daemon
二、客户端(例:10.0.0.21和10.0.0.22):
1、创建一个shell脚本push.sh
vi push.sh
输入以下内容(10.0.0.1*为要推送到的目标服务器,zhangyan为服务器端rsyncd.conf配置文件中的模块名):
引用
#!/bin/sh
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.10::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.11::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.16::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.19::zhangyan/
注:因为是内部局域网之间传输,这里没有设置密码。
2、赋予push.sh执行权限
chmod +x ./push.sh
3、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录:
./push.sh /home/zhanguan/abc/
注意:不要忘了abc后面的/。如果更改的文件太大,可以在上面语句的末尾加上空格和&号,推到后台执行。例:
./push.sh /home/zhanguan/abc/ &
★方式二:
一、服务器端(例:10.0.0.1*):
1、创建用户和组
groupadd www -g 48
useradd -u 48 -g www www
mkdir -p /opt/htdocs
chmod +w /opt/htdocs
chown www:www /opt/htdocs
passwd www
为www用户设置一个密码。
二、客户端:
1、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录:
/usr/bin/rsync -vzrtopg --delete /home/zhanguan/abc/ -e ssh www@10.0.0.10:/opt/htdocs/
输入密码,回车即可,无须服务器端启动rsync服务。
[ 2007-7-16 16:44 | by 张宴 ]
推送:
/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets /data0/vshare/logs/user_search/iasks/* backupuser@219.142.118.48::boke_2008_sum_olympic_video
查看目录:
/usr/bin/rsync --password-file=/usr/local/etc/rsyncd.secrets backupuser@219.142.118.48::boke_2008_sum_olympic_video/
列出所有目录结构:
/usr/bin/rsync -vzrtopg --password-file=/usr/local/etc/rsyncd.secrets backupuser@219.142.118.48::boke_2008_sum_olympic_video/
匿名推送(不要用户名和密码):
/usr/bin/rsync -avgt /home/xiangdong2/rsync/* localhost::app4
app:
/usr/bin/rsync -vzrtopg --password-file=/home/xiangdong2/.rsync.secrets appspace@10.210.128.114::app_space_sina_com_cn
在home下建立test3目录(chmod -R a+x test3)然后同步(注意:/home/xiangdong2/.rsync.secrets文件的chmod 600 /home/xiangdong2/.rsync.secrets):
/usr/bin/rsync --password-file=/home/xiangdong2/.rsync.secrets test3 appspace@10.210.128.114::app_space_sina_com_cn -rt
客户端操作
客户端同步出错:
[test01@tonykorn02 ~]$ rsync -vzrtopg --progress test01@192.168.1.250::test01 /front/test01
Password:
@ERROR: auth failed on module test01
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
[test01@tonykorn02 ~]$
原因:
secret file的文件属性有问题,该文件属性要是600的
"/home/FileServer:" 不明白这个目录是哪里来的 :)
rsync error: some files could not be transferred (code 23) at main.c(892) 有些文件不能被移动
是不是文件没有读的权限?
chmod -R a+r /home/wow/dl
★方式一:
一、服务器端(例:10.0.0.1*):
1、创建用户和组
groupadd www -g 48
useradd -u 48 -g www www
mkdir -p /opt/htdocs
chmod +w /opt/htdocs
chown www:www /opt/htdocs
2、编辑rsync的配置文件
vi /etc/rsyncd.conf
输入以下内容:
引用
uid=www
gid=www
max connections=10
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[zhangyan]
path=/opt/htdocs
comment = my htdocs
ignore errors
read only = no
hosts allow=10.0.0.21 10.0.0.22
3、启动rsync服务器端
/usr/bin/rsync --daemon
二、客户端(例:10.0.0.21和10.0.0.22):
1、创建一个shell脚本push.sh
vi push.sh
输入以下内容(10.0.0.1*为要推送到的目标服务器,zhangyan为服务器端rsyncd.conf配置文件中的模块名):
引用
#!/bin/sh
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.10::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.11::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.16::zhangyan/
/usr/bin/rsync -vzrtopg --delete $1 10.0.0.19::zhangyan/
注:因为是内部局域网之间传输,这里没有设置密码。
2、赋予push.sh执行权限
chmod +x ./push.sh
3、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录:
./push.sh /home/zhanguan/abc/
注意:不要忘了abc后面的/。如果更改的文件太大,可以在上面语句的末尾加上空格和&号,推到后台执行。例:
./push.sh /home/zhanguan/abc/ &
★方式二:
一、服务器端(例:10.0.0.1*):
1、创建用户和组
groupadd www -g 48
useradd -u 48 -g www www
mkdir -p /opt/htdocs
chmod +w /opt/htdocs
chown www:www /opt/htdocs
passwd www
为www用户设置一个密码。
二、客户端:
1、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录:
/usr/bin/rsync -vzrtopg --delete /home/zhanguan/abc/ -e ssh www@10.0.0.10:/opt/htdocs/
输入密码,回车即可,无须服务器端启动rsync服务。
[ 2007-7-16 16:44 | by 张宴 ]
推送:
/usr/bin/rsync -avgt --progress --password-file=/usr/local/etc/rsyncd.secrets /data0/vshare/logs/user_search/iasks/* backupuser@219.142.118.48::boke_2008_sum_olympic_video
查看目录:
/usr/bin/rsync --password-file=/usr/local/etc/rsyncd.secrets backupuser@219.142.118.48::boke_2008_sum_olympic_video/
列出所有目录结构:
/usr/bin/rsync -vzrtopg --password-file=/usr/local/etc/rsyncd.secrets backupuser@219.142.118.48::boke_2008_sum_olympic_video/
匿名推送(不要用户名和密码):
/usr/bin/rsync -avgt /home/xiangdong2/rsync/* localhost::app4
app:
/usr/bin/rsync -vzrtopg --password-file=/home/xiangdong2/.rsync.secrets appspace@10.210.128.114::app_space_sina_com_cn
在home下建立test3目录(chmod -R a+x test3)然后同步(注意:/home/xiangdong2/.rsync.secrets文件的chmod 600 /home/xiangdong2/.rsync.secrets):
/usr/bin/rsync --password-file=/home/xiangdong2/.rsync.secrets test3 appspace@10.210.128.114::app_space_sina_com_cn -rt
客户端操作
客户端同步出错:
[test01@tonykorn02 ~]$ rsync -vzrtopg --progress test01@192.168.1.250::test01 /front/test01
Password:
@ERROR: auth failed on module test01
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
[test01@tonykorn02 ~]$
原因:
secret file的文件属性有问题,该文件属性要是600的
"/home/FileServer:" 不明白这个目录是哪里来的 :)
rsync error: some files could not be transferred (code 23) at main.c(892) 有些文件不能被移动
是不是文件没有读的权限?
chmod -R a+r /home/wow/dl
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1110/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2008-10-10 09:48
评论列表