linux中rsync异步服务器实现文件同步与备份

linux中rsync异步服务器实现文件同步与备份,第1张

Rsync
非常适合在两台机器之间快速同步大型、复杂的目录,例如论坛的附件目录。再配合
ssh
,则安全性也有保证,且可以利用
ssh
public
key

cron
来进行自动定时同步。
说明:两台机器分别为
localhost

remotehost
;用户分别为
localuser

remoteuser。
环境:FreeBSD
49

FreeBSD
61
代码如下

设置
ssh
public
key
认证
$ssh-keygen
-t
dsa
-b
2048
生成所需的密钥
$scp
/home/localuser/ssh/id_dsapub
remoteuser@remotehost:/home/remoteuser/ssh/localuser_id_dsapub
将公钥拷贝至
remotehost
$ssh
remoteuser@remotehost
登录到端
代码如下

$cd
ssh/
;
cat
localuser_id_dsapub
>>
authorized_keys
至此,设置
ssh
认证完毕。
设置
rsync
确认两端机器都安装
rsync

freeBSD

ports
,安装非常方便。
写个脚本名为
backupsh
,内容如下:
代码如下

#!/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/backupsh
友情提示
rsync是没有自动启动同步功能了,如果我们要定时去备份一个网站数据我们就需要用到定时功能了,上面的例子来使用到了linux中$crontab命令来定时执行备份数据脚本了哦。

这个问题的原因是有头文件,但是找不到实现。
有两个原因:1只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
2另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10768653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存