如何同时将 echo -e 命令的输出附加到两个单独的文件中?

如何同时将 echo -e 命令的输出附加到两个单独的文件中?

首先,感谢您花时间和精力帮助我解决这个问题。现在,闲话少说,我的问题。

我是网络安全专业的学生,​​我正在尝试制作 bash 脚本来枚举我的目标主机。我有几个在功能中重复的 echo -e 命令,但为了在我的渗透测试报告中清晰可见,需要将它们放在输出文件中的位置。此外,我什至将命令输出发送到适当的文件。我的问题是这样的:

我如何附加回显消息的输出(如下所示)以在两个文件中占据应有的位置?(这是一个简短的摘录)

(omitted)

Enum_Report=(Enum_Report-$(date "+%F-%H-%M-%S").txt)
Enum_Log=(Enum_Webserver_Log-$(date "+%F-%H-%M-%S").txt)
Err_Log=(Enum_Report_Error_Log-$(date "+%F-%H-%M-%S").txt)

(omitted)

echo -e "\nWhat's the kernel version? Is it 64-bit?\n" >> $Enum_Report >> $Err_Log

{
cat /proc/version
uname -a
uname -mrs
dmesg | grep Linux
ls /boot | grep vmlinuz-
} >> $Enum_Report 2>>$Err_Log


echo -e "\nWhats cached, IP and/or MAC addresses?\n" >>$Enum_Report >> $Err_Log

{
arp -e
route
/sbin/route -nee
} >> $Enum_Report 2>>$Err_Log

(omitted)

目前,仅回显输出到 $Err_Log,我希望它作为我在两个文件中使用的每个命令组的开头。基本上,我想在标题下和两个单独的文件中记录从此脚本运行的所有命令。重定向 stdout 和 stderr 可以很好地将命令组的输出分离到单独的文件中。当然,必须有一种更简单的方法在命令运行之前将 echo 消息附加到两个文件,以便 echo 命令 stdout 落在 $Enum_Report 和 $Err_Log 中,然后每个命令组的输出正常运行。

其他需要注意的信息:

我的目标主机是与我的 Kali-box 位于同一网络上的虚拟机,运行 Ubuntu 14.04.5 LTS

再次感谢,

-N-

答案1

您无法将输出重定向到多个文件,但可以使用teetee -a

echo -e "\nWhat's the kernel version? Is it 64-bit?\n" | tee -a $Enum_Report >> $Err_Log

相关内容