无需在Shell脚本中用scp,通过Jenkins作业实现SQL转储文件跨服务器拷贝
无需scp的Jenkins文件传输插件方案
以下几个Jenkins插件可以替代手动scp脚本,实现数据库转储文件的备份传输:
1. Publish Over SSH 插件
这是最常用的替代方案,插件封装了SSH文件传输逻辑,不用自己写scp命令:
- 先在Jenkins全局配置里添加备份服务器的SSH连接信息(主机地址、用户名、私钥/密码)。
- 在你的备份作业里,添加「构建后操作」→「Send files or execute commands over SSH」:
- 选好目标服务器,填写源文件路径(就是数据库服务器上的SQL转储文件路径,前提是Jenkins节点能通过SSH访问数据库服务器)。
- 指定备份服务器上的远程存储目录,保存配置后,作业就能自动完成文件传输。
- 额外:如果转储命令还没集成到Jenkins,也可以用这个插件先在数据库服务器执行转储命令,再把生成的文件传到备份服务器。
2. Copy Artifact 插件
如果你的数据库转储文件是在Jenkins代理节点生成的,这个插件很合适:
- 先在生成转储文件的作业里,添加「构建后操作」→「归档构建产物」,把转储文件设为归档文件。
- 在备份作业里,添加「构建步骤」→「Copy artifacts from another project」:
- 选择源作业名称,指定要拷贝的转储文件路径。
- 如果备份服务器是另一台Jenkins节点,直接指定节点上的目标路径即可完成传输;如果是外部服务器,结合节点的SSH配置就能实现。
3. File Operations 插件
这个插件提供更灵活的跨服务器文件操作,支持多种传输协议:
- 安装插件后,在作业里添加「构建步骤」→「File Operations」。
- 选择「Copy files」操作,分别设置源文件路径(数据库服务器上的转储文件,需配置好SSH/SMB等访问凭据)和目标路径(备份服务器的存储目录)。
- 插件会自动处理文件传输的底层逻辑,完全不用手动写scp命令。
内容的提问来源于stack exchange,提问作者Андрей Белый
相关产品推荐
相关产品推荐

