服务热线
198-9911-5815
虚拟主机域名注册-常见问题 → 其他问题 → 其他问题 | ||||
当您编写了一个脚本来处理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脚本时,您将看到更多(有用)的输出写入日志文件。
|
||||
>> 相关文章 | ||||
没有相关文章。 |