Chinaunix首页 | 论坛 | 博客
  • 博客访问: 774907
  • 博文数量: 265
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1985
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-13 12:33
文章分类

全部博文(265)

文章存档

2011年(1)

2010年(66)

2009年(198)

我的朋友

分类: LINUX

2010-06-06 20:27:30

实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使Linux服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。 
★方式一:
一、服务器端(例: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 
  输入密码,回车即可,无须服务器端启动rsync服务。

PS: 
1)命令修改成:/usr/bin/rsync  -avP -e ssh nobody@10.16.16.203:/tmp ~/myget
2)可以用ssh-keygen生成证书实现无密码登录,在Redhat上出现过只有放到/root/.ssh目录下才能不需要密码的情况,修改好~/.ssh (755)和~/.ssh/authorized_keys (600)的权限就可以了。
3)cat ~/.ssh/id_rsa.pub | ssh nobody@10.16.16.203 "cat - >> ~/.ssh/authorized_keys"

参考:
阅读(729) | 评论(0) | 转发(0) |
0

上一篇:awk的位运算

下一篇:Crontab实例

给主人留下些什么吧!~~