将 AWS cli 命令与 xargs 结合使用不起作用
Combining AWS cli commands with xargs not working
我想要一个单行程序来设置 AWS Cloudwatch 日志组的属性。我遇到了 xargs 命令。但是我不明白我做错了什么:
aws logs describe-log-groups \
--query "logGroups[*].logGroupName" \
--output text \
| xargs -I {} -n 1 \
aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14
据我所知,{}
将第一个命令的输出作为列表,并通过 xargs 将每个元素通过管道传递给第二个命令。
然而,我的结果是:
An error occurred (InvalidParameterException) when calling the PutRetentionPolicy operation: Member must have length less than or equal to 512
我假设它将列表传递给 xargs,而不仅仅是第一个命令输出的一个元素。
我正在使用 Windows 10 和 git bash
aws logs describe-log-groups | \
jq ".logGroups[].logGroupName" \
|xargs -I {} -n 1 aws logs put-retention-policy \
--log-group-name {} --retention-in-days 14
aws logs describe-log-groups \
--query "logGroups[].logGroupName" \
--output text \
| xargs -I {} -n 1 \
aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14
OS
: Mac OSX
我想要一个单行程序来设置 AWS Cloudwatch 日志组的属性。我遇到了 xargs 命令。但是我不明白我做错了什么:
aws logs describe-log-groups \
--query "logGroups[*].logGroupName" \
--output text \
| xargs -I {} -n 1 \
aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14
据我所知,{}
将第一个命令的输出作为列表,并通过 xargs 将每个元素通过管道传递给第二个命令。
然而,我的结果是:
An error occurred (InvalidParameterException) when calling the PutRetentionPolicy operation: Member must have length less than or equal to 512
我假设它将列表传递给 xargs,而不仅仅是第一个命令输出的一个元素。
我正在使用 Windows 10 和 git bash
aws logs describe-log-groups | \
jq ".logGroups[].logGroupName" \
|xargs -I {} -n 1 aws logs put-retention-policy \
--log-group-name {} --retention-in-days 14
aws logs describe-log-groups \
--query "logGroups[].logGroupName" \
--output text \
| xargs -I {} -n 1 \
aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14
OS
: Mac OSX