详解rsync 命令( 四 )


这里这些脚本都是 rsync 网站上的例子:
1、每隔七天将数据往中心服务器做增量备份

详解rsync 命令

文章插图
 
 
2、备份至一个空闲的硬盘
详解rsync 命令

文章插图
 
 
3、对 vger.rutgers.edu 的 cvs 树进行镜像
详解rsync 命令

文章插图
 
 
FAQQ:如何通过 ssh 进行 rsync,而且无须输入密码?
A:可以通过以下几个步骤
  1. 通过 ssh-keygen 在 server A 上建立 SSH keys,不要指定密码,你会在~/.ssh 下看到 identity 和 identity.pub 文件
  2. 在 server B 上的 home 目录建立子目录. ssh
  3. 将 A 的 identity.pub 拷贝到 server B 上
  4. 将 identity.pub 加到~[user b]/.ssh/authorized_keys
  5. 于是 server A 上的 A 用户,可通过下面命令以用户 B ssh 到 server B 上了 e.g.ssh -l userB serverB
  6. 这样就使 server A 上的用户 A 就可以 ssh 以用户 B 的身份无需密码登陆到 server B 上了 。
Q:如何通过在不危害安全的情况下通过防火墙使用 rsync?
A:解答如下:
这通常有两种情况,一种是服务器在防火墙内,一种是服务器在防火墙外 。无论哪种情况,通常还是使用 ssh,这时最好新建一个备份用户,并且配置 sshd 仅允许这个用户通过 RSA 认证方式进入 。如果服务器在防火墙内,则最好限定客户端的 IP 地址,拒绝其它所有连接 。如果客户机在防火墙内,则可以简 单允许防火墙打开 TCP 端口 22 的 ssh 外发连接就 ok 了 。
Q:我能将更改过或者删除的文件也备份上来吗?
A:当然可以:
你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13 ...这样的命令来实现 。
这样如果源文件:/path/to/some/file.c 改变了,那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c,
这里这个目录需要自己手工建立起来
Q:我需要在防火墙上开放哪些端口以适应 rsync?
A:视情况而定
rsync 可以直接通过 873 端口的 tcp 连接传文件,也可以通过 22 端口的 ssh 来进行文件传递,但你也可以通过下列命令改变它的端口:
rsync --port 8730 otherhost::
或者
rsync -e 'ssh -p 2002' otherhost:
Q:我如何通过 rsync 只复制目录结构,忽略掉文件呢?
A:rsync -av --include '*/' --exclude '*' source-dir dest-dir
Q:为什么我总会出现 “Read-only file system” 的错误呢?
A:看看是否忘了设 “read only = no” 了
Q:为什么我会出现‘@ERROR: invalid gid’的错误呢?
A:rsync 使用时默认是用 uid=nobody;gid=nobody 来运行的,如果你的系统不存在 nobody 组的话,就会出现这样的错误,可以试试 gid = nogroup 或者其它
Q:绑定端口 873 失败是怎么回事?
A:如果你不是以 root 权限运行这一守护进程的话,因为 1024 端口以下是特权端口,会出现这样的错误 。你可以用–port 参数来改变 。
Q:为什么我认证失败?
A:从你的命令行看来:
详解rsync 命令

文章插图
 
 
应该是没有以你的用户名登陆导致的问题,试试rsync -a max@144.16.251.213::test test




推荐阅读