别再使用FTP了,试试使用 Rsync 工具上传代码到服务器

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

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 的一个简单的使用方法,通过结合不同的参数,我们可以实现各种个样的文件同步需求。

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容