我尝试从具有mod时间的目录中获取列表,并将每个管道发送到mail命令
所以我把这个结构弄乱了:
find /etc/myfolder -type f -exec sh -c 'printf "%-40s %s\n" $(echo {}|sed "s:/etc/myfolder::g") "$(stat -c %y {})" ' \; | mail -a "FROM: Server <root@server.com>" -a "Content-type: text/plain; charset=UTF-8" -s "test" my@domain.com
现在我希望我有一个标题行 - 但不知道如何。
printf "%-40s %s\n" File Mod | find ....
这无法工作,因为find不会将它转发到下一个管道。
任何想法怎么做?我知道我有可能首先将内容写入文件并将此文件内容管道传输到邮件,但这不是我想要做的。
我更喜欢oneliner:)
好的,现在这是我在crontab中使用的工作示例:
(printf "\%-40s \%s\n" File Mod; find /etc/folder -type f -exec sh -c 'printf "\%-40s \%s\n" $(echo {}|sed "s:/etc/folder/::g") "$(stat -c \%y {})" ' \; ) | mail -a "FROM: Server <root@server.com>" -a "Content-type: text/plain; charset=UTF-8" -s "Test" my@domain.com
答案 0 :(得分:1)
mail
之前
说:
{ echo "My title"; find ... \; ; } | mail ...
(注意上面命令中的\;
表示提供给-exec
的命令终止。另一个分号是终止列表所必需的。)