在 linux下实现无需密码的ssh登陆 用于实现数据同步 中我们提到了怎么用公钥的方法实现无密码ssh登陆,这次来继续说一下数据同步。
情况如下:
服务器:A和B,都是linux,都有独立IP,B服务器配置Tomcat+mysql用来做jsp服务器,A服务器配置Nginx+mysql用做php服务器;
需求:1.从B上复制文件到A上;2.复制制定时间内的文件;
条件:1.不能修改B服务器上的配置,2.服务器A可以修改,3.B服务器上文件是按照日期命名的
具体操作:
根据 linux下实现无需密码的ssh登陆 用于实现数据同步,我们实现了A、B的无密码ssh登陆,接下来我们就需要写同步脚本;
在A中 crontab中添加任务,首先想到的是用PHP的exec执行linux命令,但是失败,原因是:scp命令是root权限的命令,但是php脚本的权限没有赋给root;于是采用shell脚本执行,脚本如下:
#!/bin/bash filehead=$(date -d yesterday +%Y%m%d) /usr/bin/scp *.*.*.*:/home/$filehead*.* /home/www/
说明:
·shell文件必须要以 #!/bin/bash 开头
·定时时间变量要用 filehead=$(date -d yesterday +%Y%m%d)
·使用变量的时候需要带上$符号:/home/$filehead
这样就能同步昨天的所有文件了,能达到一个增量备份
* 这里说的增量备份只是对这种情况下使用,文件命名有规律,并且文件是按照时间命名的
如需转载请注明: 转载自26点的博客
本文链接地址: 用scp实现“增量备份”
转载请注明:26点的博客 » 用scp实现“增量备份”