Curl 使用备份插件从命令行触发Jenkins备份 问题

Curl 使用备份插件从命令行触发Jenkins备份 问题,curl,jenkins,backup,command-line-interface,Curl,Jenkins,Backup,Command Line Interface,我的网络上的备份策略意味着提供一个备份路径和一个可选命令,以便我可以准备备份 我需要备份我的Jenkins配置。简单地给出Jenkins数据目录的路径不是一个选项,因为: 我只需要备份配置 该目录的总磁盘使用量约为80GB,远远超出了合理的备份大小(99%由非关键工作区数据组成) 目前为止 我安装了,并找到了相当好的设置。现在我想知道是否可以使用bash脚本远程触发它。我知道在/jenkins/backup/launchBackup url上使用curl应该可以做到这一点,但是我得到了一个403

我的网络上的备份策略意味着提供一个备份路径和一个可选命令,以便我可以准备备份

我需要备份我的Jenkins配置。简单地给出Jenkins数据目录的路径不是一个选项,因为:

  • 我只需要备份配置
  • 该目录的总磁盘使用量约为80GB,远远超出了合理的备份大小(99%由非关键工作区数据组成)
  • 目前为止 我安装了,并找到了相当好的设置。现在我想知道是否可以使用bash脚本远程触发它。我知道在/jenkins/backup/launchBackup url上使用
    curl
    应该可以做到这一点,但是我得到了一个403禁止的错误,因为我以匿名用户的身份访问URI,无法找到登录或绕过此问题的解决方案


    那么,有人知道从命令行触发仅配置备份的简单方法吗?

    Jenkins wiki介绍了如何。简短回答:从用户页面转到配置屏幕,获取API令牌,然后在运行脚本时将其用作密码

    我还没有尝试过使用备份插件,但它适用于运行常规构建,因此它应该适用于任何可编写脚本的调用

    未经认证:

    $ curl http://jenkins:8080/job/my%20job/build
    [ HTML page saying "Authentication required" ]
    
    $ curl --user dbacher:$MY_API_TOKEN http://jenkins:8080/job/my%20job/build
    [ returns nothing and the build starts ]
    
    通过身份验证:

    $ curl http://jenkins:8080/job/my%20job/build
    [ HTML page saying "Authentication required" ]
    
    $ curl --user dbacher:$MY_API_TOKEN http://jenkins:8080/job/my%20job/build
    [ returns nothing and the build starts ]
    


    更新:修复了作业的打字错误,感谢您的评论

    戴夫·巴赫的回答对我不起作用。我需要做:

    $ curl http://jenkins:8080/job/MY_JOB_NAME/build?build
    

    这是工作,而不是工作,我需要在最后构建。

    我使用的是Jenkins ver。它是
    /job/
    ,而不是
    /jobs/
    。除此之外,它工作得完美无缺。问题主要集中在身份验证上。无论如何,这是一个有用的修正。