上一篇文章: 在本地实现完成多台服务器之间文件拷贝
准备工作: rsync同步时,删除目标目录比源目录多余文件的方法(–delete)
Linux scp 免密码 传输文件
本地电脑与一台服务器之间实现文件传输
一次完成本地打包到阿里云并及时替换阿里云中存在的同名文件夹、同名文件、删除多余文件夹及文件(使用rsync解决了 scp 无法实现文件夹覆盖的问题):
命令格式:
cd 本地项目所处绝对路径; npm run build;rsync -e “ssh -p22” -avpz --delete 本地项目所处绝对路径/dist/* root@阿里云公网IP:阿里云中存放项目的绝对路径;
例如:
-
cd /Users/xuxiansheng/Documents/杭州桑德/bangning-operators-h5; npm run build;rsync -e “ssh -p22” -avpz --delete /Users/xuxiansheng/Documents/杭州桑德/bangning-operators-h5/dist/* root@47.114.48.244:/home/wwwroot/default/bangning-operators-h5; => 偶尔失败
-
cd /Users/xuxiansheng/Documents/杭州桑德/bangning; cnpm run build; rsync -az -P /Users/xuxiansheng/Documents/杭州桑德/bangning/dist/* root@114.215.210.7:/usr/share/nginx/vue;
一次完成代码依次从本地打包拷贝到服务器A 再到服务器B 再到服务器C…依次下去
注意: 暂时无法实现该功能=> 需要登录其中一台服务器后再该服务器下操作 请继续阅读下文:
命令格式:
cd 本地项目所处绝对路径; npm run build; rsync -e “ssh -p22” -avpz --delete 本地项目所处绝对路径/dist/* root@阿里云A的公网IP:阿里云A中存放项目的绝对路径; rsync -e “ssh -p22” -avpz --delete root@阿里云A的IP:阿里云A中存放项目的绝对路径/* root@阿里云B的公网IP:阿里云B中存放项目的绝对路径;…依次下去
例子:
cd /Users/xuxiansheng/Documents/杭州桑德/bangning-operators-h5; npm run build; rsync -e “ssh -p22” -avpz --delete /Users/xuxiansheng/Documents/杭州桑德/bangning-operators-h5/dist/* root@47.114.48.244:/home/wwwroot/default/bangning-operators-h5; rsync -e “ssh -p22” -avpz --delete root@47.114.48.244:/home/wwwroot/default/bangning-operators-h5/* root@106.53.244.122:/home/bangning-operators-h5
登录一台服务器后在该服务器下完成文件拷贝到另外一台服务
rsync -e "ssh -p22" -avpz --delete /home/wwwroot/default/bangning-operators-h5/* root@106.53.244.122:/home/bangning-operators-h5