当我键入命令时,该命令将通过远程服务器进行身份验证并执行一系列操作。如果通过,它会给我一个 bash shell 及其环境。
我的目标是保存这些打印到我的终端中的日志以供将来检查。假设我的命令名为target
.
当我输入 target 时,它会抛出以下消息。
Version: V1.94
Options:
Date: Thu Jun 6 17:18:39 2019
OS: CentOS release 6.10 (Final)
....
[DEV]target>
请注意最后一行暗示我已进入目标 shell 环境。
我已经尝试过echo $(target) > output.log
,但它会卡住,直到我打字CTRL+C
。
环境:CentOS 6.10
更新
假设我想让这个脚本在我激活机器时自动运行。但是,在执行目标命令时仍然会卡住,因为它进入了 shell 并且没有离开。
#!/bin/bash
script -c target output.log
FILENAMEME=output.log
aws s3 cp "$FILENAME" s3://logs/
答案1
您可能想尝试script
:
script -c target output.log
这将启动命令target
并将整个会话的记录保存到target
文件中,直到终止output.log
。如果命令(您的target
)有几个单词长,请引用完整的命令。
script
( )参见手册man script
。
答案2
如果您无法更改target
命令本身,那么这应该会有所帮助:
target | tee output.bak
output.bak
将包含所有输出的副本(在本例中只是标准输出),因此如果您只想要初始信息,则必须修剪它。