我继承了一个在 OSX 上运行的复杂 shell 脚本,该脚本在 crontab 上运行。在脚本中,我想定期读取终端窗口中的所有内容并将其写入另一个文件……有点像我以后可以查看的日志文件。
我试图捕获脚本中已 ECHO 的内容以及终端上显示的任何错误消息。(即 /Users/topher/program.sh:第 58 行:权限被拒绝)
这可能吗?什么命令可以从终端或程序输出读取?
谢谢!topher
答案1
如果您从 cron 运行的命令如下,则生成的所有输出都将写入logfile.log
文件
/Users/topher/program.sh > logfile.log
上述命令将清空logfile.log
文件并用脚本生成的输出填充它program.sh
。以下命令将附加输出。
/Users/topher/program.sh >> logfile.log
答案2
用于tee
输出到屏幕和文件。
./some/thing | tee thing.log
您可能想要重定向stderr
到stdout
以将它们都转储到日志文件。
./some/thing 2>&1 | tee thing.log
答案3
我不知道 OS X 的终端应用程序,但有些终端(例如)xterm
可以通过选项启动,该选项会将屏幕上显示的所有内容记录到文件中。另一种可能性是运行程序script
,该程序会将所有字符捕获到终端并保存到文件中。