我有一个场景,我有一个数据库表有3列实例名称和版本,必须包含jenkins实例的数据和插件与版本一起安装...我有一个文本文件,其中包含详细信息名称和版本以及我必须插入名称和版本的代码是
input_file="test.txt"
cat $input_file | while read plugin version; do
echo "INSERT INTO table_name (version,pluginname) VALUES('$version' ,'$pluginname');"
done | mysql -user_root -db_password dbname;
现在我被困在这里如何在数据库中插入实例值。 文本文件包含所有实例的数据,即通过解析JSON API获得的插件名称和版本
curl -u user:<api-token> -s -k "https://<jenkins instance>/pluginManager/api/json?depth=1" | jq '.plugins[]|{version,longName}' -c | sed 's/\"//g' | sed 's/,/:/g' | cut -d ":" -f2,4 > test.txt
由于插件名称和版本的数据由文本文件拾取,我可以这样做,但我不知道如何在实例列中添加数据。总共添加了6个实例。 该数据库表的样本将是
instance plugin version
instance1 plugin1 ver 1
instance1 plugin2 ver2
.....
instance2 plugin1 ver1
instance2 plugin2 ver2
......
......
instance3 plugin1 ver1
instance3 plugin2 ver2
.....
必须对所有6个实例进行此操作
我该怎么办? 在此先感谢您的回答
答案 0 :(得分:0)
我猜你有多个Jenkins实例要调用。如果你有一个他们的名字列表,那么你可以遍历那个列表,调用curl
来获取插件列表及其版本并生成SQL语句,包装原始脚本:
for instance in $instance_list; do
curl ... | jq ... | ... > plugins.txt
while read plugin version; do
echo "INSERT INTO table_name (instance, version,pluginname) VALUES('$instance', '$version' ,'$pluginname');"
done < plugins.txt | mysql -user_root -db_password dbname
done