linux系统下一般都安装了,启用一下就可以了

(1):编辑配置文件

# sudo vi /etc/default/rsync #ubuntu 
# vi /etc/xinetd.d/rsync #centos

 centos:把disable=yse 改为no

 ubuntu:RSYNC_ENABLE=true #false改true

 启动:

# sudo /etc/init.d/rsync start #ubuntu
# systemctl start rsync #ubuntu20
# /usr/bin/rsync --daemon #centos
测试:
# rsync -arHz --progress root@10.10.0.1:/usr/local/www/data /usr/local/www/
然后会提示输入密码,OK!
上面是把10.10.0.0的data文件同步到本机的www下面,要是把本机同步过去,反过来写即可

 rsync的参数,可以看帮助文档或者网上查找

 --progress 传输过程中显示进度
  --exclude 忽略目录、文件
  -a 归档(压缩)模式,表示以递归方式传输文件,并保持所有文件属性
  -r 对子目录以递归模式处理
  -H 保留硬链接
  -z 在传输过程中进行压缩
  --delete 如果发送方有删除的文件,接收方同步删除

 --exclude,过滤忽略某些目录和文件,这里有个坑需要注意一下:

 比如:/usr/local/a/ 传到 /usr/local/b,忽略掉a/logs,a/config/config.php,这里一定不能写绝对地址,要写相对地址,相对地址是相对发送方而言的,不是当前执行命令的相对地址。

 正确写法:

rsync -arHz --progress --exclude "logs" --exclude "config/config.php" /usr/local/a/ /usr/local/b

前面两个排除的文件logs和config.php,其实是从第三个框框里面的目录拼接的。
--log-file='/usr/local/ssh/log/rsync.log' --log-file-format='%t %f %b' #也可以指定保存日志

3:建立主机信任,scp rsync建立链接都需要输入密码,很不方便,我们下面处理一下,直接链接就行,不用输入密码

(1):

# vi /etc/ssh/sshd_config
 找到以下内容,并且去掉 #,否则不会在.ssh下生成文件
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

 然后重启:

# /sbin/service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
(2):建立从A服务器到B服务器不用密码,在A服务器上执行ssh命令:
# ssh-keygen -t rsa  
按照提示选择yes,然后一直回车,最终会输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.  //你的公钥保存在这个位置
The key fingerprint is:

 34:85:92:a7:c1:b7:cb:67:6f:1f:3f:ba:7e:fa:ad:06 root@abcdefg

(3):把A服务器的/root/.ssh/id_rsa.pub 文件复制到B服务器

 注意:以下都是在B服务器上进行:

(4):写入authorized_keys,我这里的scp和rsync链接都是链接对方的root用户,所以命令:

# cat id_rsa.pub >>/root/.ssh/authorized_keys //root

 如果你链接的是其他用户,比如zhangsan,那么就是

 cat id_rsa.pub >>/home/zhangsan/.ssh/authorized_keys //zhangsan

注意这里的.ssh文件夹,不是都有的,如果没有的话,需要建立一个
# mkdir .ssh 
(5):centos5.5需要复制权限才可以,我们赋下权限
# chmod 600 .ssh/authorized_keys
# chmod 700.ssh
这样从A服务器访问B服务器就不用密码了,前提是访问B服务器的root用户,你如果要用其他B服务器上的用户,则还需要密码!
 

最新文章

  1. iframe的优缺点
  2. Golang语法与代码格式速记【转】
  3. javascript通用事件封装
  4. C语言判断文件是否存在(转)
  5. 深入解析结构化异常处理(SEH)
  6. Web Design:给实验室UI们的一堂课(上)
  7. Codeforces Round #197 (Div. 2) : B
  8. OGRE插件设计-Texture与GLTexture
  9. Jquery 对象集合的迭代扩展forEach
  10. ACM2114_S[I](1^3+2^3+3^3)
  11. 深入Android媒体存储服务(一):APP与媒体存储服务的交互
  12. UML 顺序图
  13. Itunes制作手机铃声,图文版
  14. Jquery ajax异步传值的两个实用的方法,你看后肯定会用第二个
  15. MYSQL手册
  16. Android Studio将引用第三方jar包的library打包成jar包
  17. CSS-变量
  18. IO流(3)—字节流
  19. Synchronized、lock、volatile、ThreadLocal、原子性总结、Condition
  20. PHP系统编程--PHP进程信号处理(转)

热门文章

  1. python下载站长素材免费简历模板(xpath)
  2. C# 变量和表达式
  3. QT--弹出新的对话框 show()/exec()的区别
  4. app打包尺寸
  5. WPF-UI框架MahApps.Metro使用教程
  6. oracle ebs 加锁
  7. 13-之容器资源需求、资源限制及Metric-server(Heapster)
  8. django找不到template文件的解决办法
  9. jar包启动脚本, 以及外置配置文件application.yml
  10. debug / support 的步骤 / 解决问题的步骤