我正在尝试创建一个shell脚本,该脚本可以迭代所有zip文件,并使用curl命令将它们安装在AEM软件包管理器中。 下面的单个curl命令正在运行,它正在相应的AEM实例中正确安装软件包。
curl -u admin:admin -F file=@"content-ope.zip" -F name="content-ope.zip" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp
但是我们必须安装许多zip文件,因此我们计划将所有zip文件保留在一个文件夹中,迭代所有zip文件并使用curl命令安装。尝试了while和for循环,但无法使用Shell脚本读取所有.zip文件。
有人对此有任何想法吗?
答案 0 :(得分:2)
我写的是确切的东西,请看这里:
https://gist.github.com/ahmed-musallam/07fbf430168d4ac57bd8c89d8be9bca5
#!/bin/bash
# this script will install ALL zip packages in current directory the AEM instance at 4502
for f in *.zip
do
echo "installing: $f"
curl -u admin:admin -F file=@"$f" -F name="$f" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp
echo "done."
done
答案 1 :(得分:1)
除了使用curl之外,您还可以将文件复制到AEM实例的安装文件夹中。这些将自动安装。 https://helpx.adobe.com/in/experience-manager/6-3/sites/administering/using/package-manager.html#FileSystemBasedUploadandInstallation
答案 2 :(得分:0)
find . -name "*.zip" -maxdepth 1 -exec curl -u admin:admin -F file=@"{}" -F name="{}" -F force=true -F install=true http://localhost:4502/crx/packmgr/service.jsp ";"
节点,它将用./foo.zip
代替foo.zip
。如果您需要剥离./
,则可能应该编写将curl
接受命令的外壳脚本包裹起来,该命令接受zip文件名作为参数,并在传递给./
之前从中剥离curl