有一个域foo.com会导致大量的邮件守护进程邮件,所以我想清除那些来自kubernets邮件队列的邮件。我写了一个剧本,但我不确定这是不是正确的方法。
kubectl config use-context
kubectl exec postfix-pod-0 -n -- postqueue -p | grep -B2 foo.com | grep MAILER-DAEMON | awk {'print $1'} > q.txt
cat q.txt | xargs -n1 'kubectl exec postfix-pod-0 -n -- /usr/sbin/postsuper -d - '我正在成功地从第二个命令中获得所有MAILER的队列id。但不确定xargs是否将队列id从q.txt逐个传递给后置超级程序。
如果我得到了一个工作脚本,我希望创建一个脚本来清除集群中所有foo.com邮箱-守护进程的所有邮件。
发布于 2021-12-07 03:01:41
kubectl -n namespace exec -ti postfix-pod-0 -- /bin/sh -c "postqueue -j | grep ${DEL_ADDR} | jq -r .queue_id | xargs -I {} postsuper -d {}"笛卡尔。在"--“之后写运行命令,在本例中是/bin/sh,带有参数。
kubectl -n namespace exec -ti postfix-pod-0 --带有双引号管道的Shell命令将在pod上运行:
/bin/sh -c "command"以json格式获取后缀队列。Avery印刷线是json对象:
postqueue -j现在,我们可以通过grep命令获得必要的行并传递给jq。
grep ${DEL_ADDR}在jq消息id值中:
jq -r .queue_id接下来,我们将queue_id传递给xarg,并通过后超级-d删除它:
xargs -I {} postsuper -d {}https://unix.stackexchange.com/questions/625097
复制相似问题