别再使用FTP了,试试使用 Rsync 工具上传代码到服务器
Rsync 是一个古老的 Linux 应用,用于同步文件,可以用来在本地计算机和远程服务器之间同步文件。相对于FTP,Rsync 的最大特点就是同步,使用时,Rsync 会检查发送端和接收端的已有文件,仅传输有修改的文件,正是因为这个特性,Rsync 的效率要比 FTP 高很多。
一般情况下,只要服务器支持 SSH,就已经支持了 Rsync,这也就意味着大多数 Linux 服务器都可以使用 Rsync,只需要稍做配置,我们就可以使用 Rsync 「上传」文件到我们的服务器了。
Rsync 同步文件配置
如果用于上传文件,我们一般使用下面的命令。
rsync -avz --delete /path/to/local/directory/ user@host:/path/to/remote/folder/
第一个路径是源路径,第二个是目的路径,如果目的不存在,执行上面的命令后,Rsync服务端会自动创建。如果第一个是远程路径,第二个是本机路径,则相当于 FTP 的下载文件。如果两个都是本机路径,则相当于复制文件。
注意:如果源路径后面不加斜杠,源目录中会作为子目录被复制到目的路径中。
-a存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等。-v在传输时显示详情-z在传输时压缩文件,发送的数据量更小,对性能稍有影响--delete在目标位置删除本地目录中没有的文件,慎用,以免删除用户生成的文件
排除不需要同步的文件
如果本地目录中的某些文件不需要上传到服务器上,我们可以使用 –exclude 参数排除这些文件。如下命令中,我们排除了 .git 、node_modules 和 wp-content/uploads 这三个目录。
rsync -avz --delete \
--exclude=.git* \
--exclude=node_modules/ \
--exclude=/wp-content/uploads/ \
/path/to/local/wordpress/ user@host:/path/to/remote/wordpress/
如果需要排除的文件比较多,上面的命令可能会变得比较长,我们可以把需要排除的路径写到一个文件中,如 rsync-excludes.txt,然后改用上面的命令来同步文件。
rsync -avz --delete --exclude-from=rsync-excludes.txt /path/to/local/wordpress/ user@host:/path/to/remote/wordpress/
rsync-excludes.txt 实例
.git*
node_modules
/wp-content/uploads/
/wp-content/upgrade/
/wp-content/debug.log
/wp-content/advanced-cache.php
/wp-content/object-cache.php
上面文件中前面的斜杠是相对于需要同步文件夹的根目录,而不是计算机的根目录,如果省略前面的斜杠,Rsync 将在所有子目录中排除这些目录或文件。
看起来有点麻烦,但是你值得拥有
相对于粗暴的 FTP,虽然上面的一通操作看起来有点麻烦,但是一旦我们熟练使用之后,就会大幅提高文件上传的效率,特别是在网络较慢的时候。并且,本文只介绍了 Rsync 的一个简单的使用方法,通过结合不同的参数,我们可以实现各种个样的文件同步需求。
您可能感兴趣的文章
- 01-07Tomcat部署Bolo动态博客
- 01-07图文详解nginx日志切割的实现
- 01-07如何解决swarm docker 端口不通问题
- 01-07详解nginx location指令
- 01-07如何解决docker http 500错误问题
- 01-07windows server 2008安装配置DNS服务器
- 01-07Linux上搭载Nginx负载均衡配置使用案例详解
- 01-07NGINX 权限控制文件预览和下载的实现原理
- 01-07Nginx防盗链与服务优化配置的全过程
- 01-07使用 Apache 反向代理的设置技巧


阅读排行
推荐教程
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法




