linux下rsync文件同步与备份的方法

发布时间:2020-12-11编辑:脚本学堂
本文介绍了linux下rsync实现文件同步与备份的方法,Rsync 非常适合在两台机器之间快速同步大型、复杂的目录,结合ssh可以实现自动定时同步,需要的朋友参考下。
rsync 非常适合在两台机器之间快速同步大型、复杂的目录,例如论坛的附件目录。
再配合 ssh ,则安全性也有保证,且可以利用 ssh public key 和 cron 来进行自动定时同步。
说明:两台机器分别为 localhost 和 remotehost ;用户分别为 localuser 和 remoteuser。
环境:FreeBSD 4.9 和 FreeBSD 6.1
 
第一部分,设置 ssh public key 认证
 

 

linux下rsync文件同步与备份方法

复制代码 代码示例:
$ssh-keygen -t dsa -b 2048
生成所需的密钥
$scp /home/localuser/.ssh/id_dsa.pub remoteuser@remotehost:/home/remoteuser/.ssh/localuser_id_dsa.pub
将公钥拷贝至 remotehost
$ssh remoteuser@remotehost

登录到服务端:
 

复制代码 代码示例:
$cd .ssh/ ; cat localuser_id_dsa.pub >> authorized_keys

至此,设置 ssh 认证完毕。

第二部分,设置 rsync
确认两端机器都安装 rsync , freeBSD 有 ports。
写个脚本名为 backup.sh:
 

复制代码 代码示例:
#!/bin/sh
RSYNC=/usr/local/bin/rsync
SSH=/usr/bin/ssh
KEY=/home/localuser/.ssh /id_rsa
RUSER=remoteuser
RHOST=remotehost
RPATH=/remote/dir
LPATH=/this/dir
$RSYNC -az—delte -e “$SSH -i $KEY” $RUSER@$RHOST:$RPATH $LPATH

选项说明:
-a 选项相当于选项 -rlptgoD 。简单来讲,此选项可递归并将几乎所有的东西同步过去。
注意,-a 默认不会保存 hardlinks ,不过可以单独用 -H 选项来实现。
-z 选项在传输中压缩文件,这无疑加快同步速度。
-delete 选项会删除接受方一些不应存在的文件,此文件在发送方已经被删除,这将保持目录完全同步。

设置cron 每天凌晨1点运行此脚本:
 

复制代码 代码示例:
$crontab -e
0 1 * * * /home/localuser/bin/backup.sh
推荐阅读:

提示:
rsync是没有自动启动同步功能了,如果要定时去备份一个网站数据则需要用到定时功能了。
以上例子中使用了linux中$crontab命令来定时执行备份数据脚本。

您可能感兴趣的文章: