2017-04-19 24 views
0

我需要编写一个shell脚本,它可以使用REST API从JFROG中获取过时的工件并将其删除。在JFROG中搜索旧工件后删除工件

我被命令

curl -u user:password "http://artifactory:8081/artifactory/api/search/dates?dateFields=created&from=1467052559000&to=1497588559000&repos=current-repo" 

得到一个物品清单,并得到像

"results" : [ { 
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/first artifact/artfoulder folder/file.tzs", 
    "created" : "2017-04-10T11:33:50.190+03:00" 
    }, { 
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/second artifact/artfoulder folder/file2.tzs", 
    "created" : "2017-04-10T11:33:50.140+03:00" 
    } ] 

等文物

我顺利地拿到了这些文物的名单后,我需要一个输出删除它们。

我的问题:

  1. 有一个简单的办法做到这一点?或者我需要用shell解析输出字符串,将链接放在数组中,并通过REST API命令逐个删除?
  2. 它有一种方式来获得唯一的一级神器的文件夹,这是过时的和删除它们(第一神器,在我的情况下第二赝

非常感谢提前!

回答

0

为什么不使用脚本已经准备专门为: https://github.com/JFrogDev/artifactory-scripts/blob/master/cleanup/aqlCleanup.groovy

所有你需要做的是改变AQL查询来搜索特定的日期范围内的文物,就是这样。这会自动清理。

+0

你能告诉我,如何在詹金斯使用groovy脚本?对我来说应该是詹金斯的工作。 –

+0

在Jenkins中,您可以在通用构建中运行命令行作业,并运行groovy脚本。您需要在Jenkins机器上安装groovy。要运行一个常规工作,只需运行以下命令:“groovy fileNeme.groovy” 请注意,我所提到的groovy文件是用特定的AQL条件设置的。请确保根据自己的需要改变这种情况。 – Ariel

+0

谢谢你的回答。当然,我会关注它。你能告诉我,我怎么才能找到只有一级目录(信息在上面)?是否有可能只用一个curl命令来完成? –