rsync实现服务器之间同步目录文件
一般情况下
服务环境一般有三种
- dev 开发环境
- test 测试环境
- prod 生产环境
环境多了,不可避免的事是一些重复的操作,部署什么的
能不能在开发环境打包后,直接同步到测试环境呢?(毕竟重复的事干的多了是会烦的)
是可以的
linux下可以直接使用rsync命令
windows下可以安装cygwin来实现
copy一张图片
这里记录下同步到远程服务器的操作,也就是图上的push推
拿两台服务器
本地:192.168.1.10
远程:192.168.1.130
需求:将192.168.1.10的/opt/vue/index.html文件 和 /opt/vue/static目录同步到远程192.168.1.130的/opt/dist目录下
操作:
rsync -avP -e "ssh -i ~/.ssh/130/my.pem" /opt/vue/static /opt/vue/index.html root@192.168.1.130:/opt/dist
参数说明
- -a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"
- -v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息
- -P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)
- my.pem文件是登录192.168.1.130服务器的私钥,生成方式可以查看这篇文章 ssh通过pem文件登陆服务器
既然想实时操作,并不想每次都执行这么个脚本怎么办
配合linux定时任务 crontab,定时执行即可
方式:将命令写入一脚本中,定时执行即可
cd /root vim rsync-vue-130.sh //写入rsync -avP -e "ssh -i ~/.ssh/130/my.pem" /opt/vue/static /opt/vue/index.html root@192.168.1.130:/opt/dist // crontab -e 编辑定时任务,写入,如下为每两分钟同步一次 */2 * * * * /root/rsync-vue-130.sh
如果是windows环境的话,需要安装cygwin,这样就会在windows平台提供了linux环境了
如图:
安装可以参考https://blog.csdn.net/heshushun/article/details/78664384
perfect!!!
面朝大海```春暖花开