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

Rsync 是一个古老的 Linux 应用,用于同步文件,可以用来在本地计算机和远程服务器之间同步文件。相对于…

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

类别:WordPress 教程精选

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册