0

跟进这个关于 a 的建议mailq sort,在我们的例子中,我们想在排序中添加年份,因为这是一个隔离区。您将如何在第一列中包含第一个字符,即年份?第一个0001CJwkY17025412020 年。

mailq -qQ|grep "^[A-F0-9]" | sort -k8n -k4M -k5n -k6n
001CJwkY1702541 5623 Wed Jan  1 07:19 <user@ourdomain.edu>

同样来自sendmail 8.11文档,第 79 页:

All queue files have the name x fYMDhmsNPPPPP where YMDhmsNPPPPP is the id for this message and the x is a type. The individual letters in the id are:
Y Encoded year
M Encoded month
D Encoded day
h Encoded hour
m Encoded minute
s Encoded second
N Envelope number
PPPPP At least five digits of the process ID

这似乎是旧的001CJwkY1702541不对应于fYMDhmsNPPPPP。是否有更新的文件显示这一点?第一个数字“0”是年份,第二个数字也是“0”,似乎是一月,第三个数字“1”是月份中的日期。但这并不总是有意义的,例如,对于另一个隔离队列 ID,例如00ACF2XJ4027295.

4

1 回答 1

0

我的同事想出了这个。要按初始数字而不是该字符串的其余部分进行排序,您需要将其与其余部分分开。这将对剩余的字段重新编号。

mailq -qQ | sed -e 's/^\(.\)/\1 /' | grep "^[A-F0-9]" | sort -k1n -k5M -k6n -k7n|less

这使它按递增顺序排列。我会看看我是否可以让最新的成为第一个并在此处进行相应的更新,但这基本上回答了我的问题。

于 2021-04-27T17:06:08.117 回答