虚拟主机域名注册-常见问题其他问题 → 其他问题

Linux tee命令教程:用tee和script命令捕获输出和文件错误

  当您编写了一个脚本来处理Linux服务器上的一个重要任务时,如果您需要该脚本的输出日志,以便记录所发生的事情,或者对运行过程中可能没有发生的事情进行故障排除,会发生什么情况?如果脚本使用特定的服务,您总是可以查看这些特定的日志文件,但这有点麻烦。如果脚本失败,这些服务日志可能没有任何帮助。

  您可以使用tee或script命令。tee命令从标准输出读取数据,并将数据写入标准输出或文件,而script命令生成终端会话的typescript并可以将数据输出到文件中。对于任何经常使用bash脚本的人来说,这些命令应该被认为是必备的工具。当脚本输出大量信息时尤其如此。

  我想向您介绍tee和脚本命令,以便您能够更有效地排除故障并记录bash脚本。

  您需要使用tee或script的惟一工具是Linux服务器(或桌面)。缺省情况下应该安装tee和script,因此不需要安装单个包。

  一、如何使用tee命令

  让我们编写始终令人愉快的“ Hello World” bash脚本。该脚本将仅包含以下内容:

  #!/bin/bash

  echo Hello World

  将该文件命名为test,并使用以下命令为其赋予可执行权限:

  chmod u+x test

  如果使用命令./test执行该脚本,则应该看到与图A所示类似的输出 。

  您可能会问自己一个问题,“为什么不直接将脚本的输出发送到文件?” 您可以使用以下命令执行此操作:

  ./test> test.log

  由于所有内容都已转储到文件test.log中,您将看不到任何输出返回到终端。要实时查看输出并拥有输出的日志文件,可以使用tee命令,如下所示:

  ./test | tee test.log

  您不仅会看到Hello World打印到标准输出(图B的终端),还将有包含相同输出的test.log文件。

  二、如何使用script命令

  下一个工具称为script。使用script,您将获得一个交互式会话,所有这些会话均被打印到标准输出并写入文件。要在我们的Hello World示例中使用脚本,命令应为:

  script -c ./test test.log

  该-c选项告诉script我们正在运行的命令。script命令的输出如图C所示。

  使用tee和script命令输出到文件的区别在于脚本输出将为您提供更多信息,例如退出代码(图D)。

  当您拥有更复杂的bash脚本时,您将看到该命令的更多输出。例如,假设您编写了一个bash脚本,要求输入文件名,并且该文件将被删除。该bash脚本可能如下所示:

  #!/bin/bash

  echo "Enter filename to remove"

  read fn

  rm -i $fn

  使用脚本命令运行该文件时:

  script -c ./test test.log

  系统将要求您删除文件名(图E)。删除文件后,您可以查看test.log文件以查看整个会话。

  当您有一个非常复杂的bash脚本时,您将看到更多(有用)的输出写入日志文件。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:香港高防IP与美国高防比较,哪个较好?
下一篇:购买便宜的美国服务器要注意哪些方面
  >> 相关文章
没有相关文章。

服务热线

198-9911-5815

功能和特性

价格和优惠

技术支持及售后

微信关注