linux两个系统间文件同步
2013-07-11 17:27
330 查看
在Linux上,远程文件同步通过 rsync 实现,目前多数Linux上都已经安装了rsync。
由于rsync仅复制修改过的文件,因此能最大限度的减少需要同步的文件。
由于rsync同步时,每次都需要用户输入远程服务器的密码,因此如果希望通过脚本定时同步文件的话,需要使用证书登录。
下面是生成证书的步骤:
1.首先在需要执行 rsync 命令的B主机上,生成 RSA 密钥:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/haifeng/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/haifeng/.ssh/id_rsa.
Your public key has been saved in /home/haifeng/.ssh/id_rsa.pub.
The key fingerprint is:
7b:75:98:eb:fd:13:ce:0f:c4:cf:2c:65:cc:73:70:53 haifeng@haifeng-EX38-DS4
The key's randomart image is:
+--[ RSA 2048]----+
| E|
| .|
| ...|
| + =.|
| S + +.*|
| . . + Bo|
| . . . = =|
| . . . * |
| . ..=|
+-----------------+
输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车 。
2.查看钥匙
[root@localhost .ssh]# ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
可以发现 ssh目录下的两枚钥匙。
3.将公密钥 id_rsa.pub 文件通过FTP或SCP拷贝到远程A主机上
在远程A主机上,以执行 rsync 时的用户名登录,复制 id_rsa.pub 的内容到 ~/.ssh/authorized_keys:
$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys
现在从B主机通过rsync或者SSH到A主机传递文件,就不会再提问密码了。
执行rsync实现文件同步
接着就可以使用 rsync 来同步B主机和A主机的文件夹。在B主机上执行命令:
$ rsync -vaz root@123.123.123.88:/var/www/public_html/ /home/jack/public_html/
就能将远程服务器123.123.123.88上的目录/var/www/public_html/中的所有文件同步到本地目录 /home/jack/public_html/ 中。
将上面的rsync命令放到cron中定时执行,例如每8分钟执行一次。就能实现两台服务器之间的数据同步、备份了。
由于rsync仅复制修改过的文件,因此能最大限度的减少需要同步的文件。
由于rsync同步时,每次都需要用户输入远程服务器的密码,因此如果希望通过脚本定时同步文件的话,需要使用证书登录。
下面是生成证书的步骤:
1.首先在需要执行 rsync 命令的B主机上,生成 RSA 密钥:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/haifeng/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/haifeng/.ssh/id_rsa.
Your public key has been saved in /home/haifeng/.ssh/id_rsa.pub.
The key fingerprint is:
7b:75:98:eb:fd:13:ce:0f:c4:cf:2c:65:cc:73:70:53 haifeng@haifeng-EX38-DS4
The key's randomart image is:
+--[ RSA 2048]----+
| E|
| .|
| ...|
| + =.|
| S + +.*|
| . . + Bo|
| . . . = =|
| . . . * |
| . ..=|
+-----------------+
输入后,会提示创建.ssh/id_rsa、id_rsa.pub的文件,其中第一个为密钥,第二个为公钥。过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车 。
2.查看钥匙
[root@localhost .ssh]# ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
可以发现 ssh目录下的两枚钥匙。
3.将公密钥 id_rsa.pub 文件通过FTP或SCP拷贝到远程A主机上
在远程A主机上,以执行 rsync 时的用户名登录,复制 id_rsa.pub 的内容到 ~/.ssh/authorized_keys:
$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys
现在从B主机通过rsync或者SSH到A主机传递文件,就不会再提问密码了。
执行rsync实现文件同步
接着就可以使用 rsync 来同步B主机和A主机的文件夹。在B主机上执行命令:
$ rsync -vaz root@123.123.123.88:/var/www/public_html/ /home/jack/public_html/
就能将远程服务器123.123.123.88上的目录/var/www/public_html/中的所有文件同步到本地目录 /home/jack/public_html/ 中。
将上面的rsync命令放到cron中定时执行,例如每8分钟执行一次。就能实现两台服务器之间的数据同步、备份了。
相关文章推荐
- 使用rsync在windows和linux两个系统中进行文件同步
- Rsync实现Windows系统与Linux文件同步
- linux学习第七十篇:expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令
- 用Linux 2.6内核中的文件系统变化通知机制inotify可实现跨机文件同步
- linux系统中rsync+inotify实现服务器之间文件实时同步
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
- SecureCRT 安装、连接虚拟机安装的Linux系统及两个系统间文件的传输
- Linux 系统 svn批量新建钩子脚本和解决不能同步中文名文件
- linux实时同步文件系统
- 由于Ubuntu系统时间早于Windows系统时间造成的编译问题(使用beyond compare同步两个平台的文件)
- linux系统中rsync+inotify实现服务器之间文件实时同步
- 烂泥:Linux系统与windows系统文件同步
- Linux和远程系统同步文件(未完成)
- linux系统中rsync+inotify实现服务器之间文件实时同步
- linux系统使用Rsync+sersync实现文件实时同步
- Porting:uboot烧写、linux内核烧写、根文件系统烧写:系统移植,nfs同步网络配置
- Linux系统与windows系统文件同步
- Linux系统间文件双向同步搭建Unison版
- Linux系统下比较两个文件并删除相同部分
- 转载:linux系统下SVN同步文件到WEB目录