rsync同步数据---把左边的文件全部拷贝到右边
背景,配置好了ssh 使用rsa pulbic key的方式登陆远程服务器。//ssh-keygen -t rsa -b 2048 -f andy-rsync-key -P ''
https://help.ubuntu.com/community/SSH/OpenSSH/Keys
然后就有了本篇的主体,通过rsync来同步远程和本地的数据。
本篇的拓展,开发一个手机app, 通过http协议调用 php(或其他语言写的http接口), 实现自动化便捷控制。@todo
--------------------------------------------------------------------------------------------------------------------------------
rsync 用来同步两台主机上的目录(或文件)
/home/fly/ljl
rsync -chavzP --stats . 120.79.14.84:/fly/ljl/
-------------------------------------------------------------
反过来,也是一样,把远程的同步到本地机器:
rsync -chavzP --stats 120.79.14.84:/fly/ljl/* .
远程---》本地, 本地----》远程, 其实都是数据从左端-------》右端。(数据从左端流向右端, 从左端同步到右端)。
注意:同步的时候,如果左端有新增或修改的文件(目录),右端也有新增的文件,左端的文件(新增或修改) 会同步到右端去, 右端上面新增的文件不会同步到左端, 右端上面修改的文件会被左端的覆盖。
也就是说,同步之后,右端的文件以左端的文件为最新版本,会把左边的文件全部拷贝到右边。右边自己已有的新文件不动。
实际传输
不加压缩参数 -z 的话,
---------------------------------------------------------------------------------------
写成php的自动同步脚本:
shell_exec()函数
rsync.php
1 2 | <?php echo shell_exec( "rsync -chavzP --stats . 120.79.14.84:/fly/ljl/" );<br> //或者改用绝对路径<br>//echo shell_exec("rsync -chavzP --stats /home/fly/ljl/ 120.79.14.84/fly/ljl"); |
运行一下这个 rsync.php文件就可以同步了。
php rsync.php
用反引号的方式:
1 2 3 | <?php $m = `ls -al`; echo $m ; |
PHP supports one execution operator: backticks (``),Use of the backtick operator is identical to shell_exec().
-----------------------------------------------------------------------------------------------------------2018年12月11日-----------------
补充: rsync 可以使用不同的端口,并不要求两台服务器的 ssh端口都一致
下面本机的ssh 端口是 3000, 而远端的端口是 22
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2015-12-04 什么是线程安全和线程不安全
2015-12-04 JavaScript:有符号整数与无符号整数相互转化