Nginx中rsync查看远程目录的实现

 更新时间:2026年07月31日 09:34:50   作者:難釋懷  
本文主要介绍了Nginx中rsync查看远程目录的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、引言:部署前的“侦察兵”

在使用 rsync 同步 Nginx 静态资源或配置文件之前,你是否曾有过这样的疑问:

  • 目标服务器上 /var/www/html/ 目录里现在有哪些文件?
  • 我即将推送的新版本是否会覆盖掉一些重要的临时文件?
  • 上次同步是否真的成功了?

直接登录服务器用 ls 命令固然可行,但这破坏了自动化的流畅性。幸运的是,rsync 本身就内置了一个强大的功能——--list-only 选项,让你无需登录,就能像本地 ls 一样清晰地看到远程目录的全貌。

本文将详细介绍如何利用这个选项,并结合 SSH 和 Daemon 两种模式,为你提供最实用的操作指南。

二、核心武器:--list-only选项

--list-only 是 rsync 的一个非常实用但常被忽视的选项。它的作用是:

  • 仅列出源路径中的文件和目录。
  • 不执行任何传输或修改操作。
  • 输出格式与 rsync 在同步时的详细输出(-v)一致,包含文件权限、大小、时间戳等信息。

这使得它成为部署前检查和状态确认的完美工具。

三、实战:两种模式下的远程目录查看

场景一:通过 SSH 模式查看(最常用)

这是最安全、最常见的场景。假设你需要查看一台 Nginx 服务器(IP: 192.168.1.100)上 /var/www/html/ 目录的内容。

基础命令

rsync -av --list-only user@192.168.1.100:/var/www/html/
  • -a: 归档模式,确保输出包含完整的文件属性(权限、时间等)。
  • -v: 详细模式,让输出更易读。
  • --list-only: 核心选项,只列出不传输。

示例输出

receiving incremental file list
drwxr-xr-x          4,096 2026/06/20 10:30:22 .
-rw-r--r--            543 2026/06/19 15:22:10 index.html
-rw-r--r--          2,345 2026/06/18 09:11:05 app.js
drwxr-xr-x          4,096 2026/06/15 14:00:00 static/

从输出中,你可以清晰地看到每个文件的权限、大小、修改时间和名称。

结合 SSH 密钥(免密)

如果你已经配置了 SSH 公钥认证,命令可以直接在脚本或 CI/CD 流水线中无交互地运行:

# 假设你的私钥在 ~/.ssh/nginx_deploy_key
rsync -av -e "ssh -i ~/.ssh/nginx_deploy_key" \
    --list-only \
    deploy_user@192.168.1.100:/var/www/html/

场景二:通过 rsync Daemon 模式查看

如果你的架构使用了 rsync 守护进程,查看方式略有不同。

假设服务端配置了一个名为 webdata 的模块,指向 /data/web/ 目录。

基础命令

# 如果模块不需要密码
rsync -av --list-only rsync://192.168.1.100/webdata/

# 如果模块需要密码,使用密码文件
rsync -av --password-file=/path/to/rsync.pass \
    --list-only \
    rsync://nginx_sync@192.168.1.100/webdata/

这里的 URI 格式为 rsync://[user@]host[:port]/module/。

四、高级技巧:让输出更精准

--list-only 可以和 rsync 的其他过滤选项完美结合,实现更精细的“侦察”。

1. 仅列出特定类型的文件

例如,只想看所有的 .js 和 .css 文件:

rsync -av --list-only \
    --include='*.js' \
    --include='*.css' \
    --exclude='*' \
    user@192.168.1.100:/var/www/html/

2. 递归深度控制

默认会递归列出所有子目录。如果只想看顶层目录,可以使用 --max-depth

# 只列出 /var/www/html/ 下的直接子项,不进入子目录
rsync -av --list-only --max-depth=1 user@192.168.1.100:/var/www/html/

3. 与--dry-run的区别

很多同学会混淆 --list-only 和 --dry-run (-n)。

  • --list-only: 只关心源(source),列出源路径的内容。目标路径甚至可以不存在。
  • --dry-run: 关心源和目标的差异,模拟一次完整的同步过程,告诉你哪些文件会被创建、更新或删除。

对于单纯的“查看远程有什么”的需求,--list-only 是更直接、更高效的选择。

五、Nginx 运维中的典型应用场景

  1. 部署前检查:在执行 rsync -av --delete ... 之前,先用 --list-only 看一眼目标目录,确认没有意外的重要文件会被 --delete 清除。
  2. 验证同步结果:同步任务完成后,再次使用 --list-only 对比源和目标的文件列表,快速验证一致性。
  3. CI/CD 流水线集成:在自动化脚本中加入此命令,作为部署流程的一个健康检查步骤,将输出记录到日志中供后续审计。

六、结语

到此这篇关于Nginx中rsync查看远程目录的实现的文章就介绍到这了,更多相关Nginx rsync查看远程目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析nginx刚刚发布的JavaScript能力nginScript

    浅析nginx刚刚发布的JavaScript能力nginScript

    Nginx [engine x]是全球最受欢迎,也是最优秀的web服务器、反向代理服务器。nginScript是JavaScript/ECMAscript的子集,nginScript不是通过V8引擎实现的。本文给大家介绍nginx刚刚发布的JavaScript能力nginScript,感兴趣的朋友跟着小编一起了解了解吧
    2015-09-09
  • Nginx优化服务之网页压缩的实现方法

    Nginx优化服务之网页压缩的实现方法

    这篇文章主要介绍了Nginx优化服务之网页压缩的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • nginx下配置thinkphp文件的方法

    nginx下配置thinkphp文件的方法

    这篇文章主要介绍了nginx下配置thinkphp文件的方法,需要的朋友可以参考下
    2017-01-01
  • 配置Nginx出现403(Forbidden)静态文件加载不出来的解决方法

    配置Nginx出现403(Forbidden)静态文件加载不出来的解决方法

    本文主要介绍了配置Nginx出现403(Forbidden)静态文件加载不出来的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • 一篇文章读懂nginx的gzip功能

    一篇文章读懂nginx的gzip功能

    nginx提供了对文件内容压缩的功能,允许将内容在发送到客户端之前根据具体的策略进行压缩从而节约带宽,下面这篇文章主要给大家介绍了如何通过一篇文章读懂nginx的gzip功能,需要的朋友可以参考下
    2022-05-05
  • Nginx 配置跨域的实现及常见问题解决

    Nginx 配置跨域的实现及常见问题解决

    本文主要介绍了Nginx 配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • nginx地址重写、反向代理方式

    nginx地址重写、反向代理方式

    这篇文章主要介绍了nginx地址重写、反向代理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 记一次nginx中proxy_pass的使用问题

    记一次nginx中proxy_pass的使用问题

    这篇文章主要介绍了记一次nginx中proxy_pass的使用问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Nginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Nginx正向代理与反向代理及配置文件全解析

    Nginx正向代理与反向代理及配置文件全解析

    Nginx是一款高性能的开源Web服务器和反向代理服务器,广泛应用于高并发场景,如静态资源托管、负载均衡、API网关等,本文给大家介绍Nginx正向代理与反向代理及配置文件全解析,感兴趣的朋友一起看看吧
    2025-05-05

最新评论