首页 > 系统相关 >Shell执行脚本并输出日志文件的方法

Shell执行脚本并输出日志文件的方法

时间:2023-10-25 09:37:04浏览次数:36  
标签:脚本 输出 Shell log 标准 sh test 日志 重定向

shell 错误输出重定向到标准输出

1 ./tmp/test.sh > /tmp/test.log 2>&1

>和<是文件重定向符。那么1和2是什么?

shell中每个进程都和三个系统文件相关联
标准输入stdin
标准输出stdout
标准错误stderr
三个系统文件的文件描述符分别为0,1和2。
所以这里2>&1的意思就是将标准错误也输出到标准输出当中。

下面通过一个例子来展示2>&1有什么作用:

1 2 3 $ cat test.sh t date

test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout。

标准输出重定向到log文件中,标准错误打印在屏幕上

1 2 3 4 5 ./test.sh > test1.log /test.sh: line 1: t: command not found   $ cat test1.log Tue Oct 9 20:51:50 CST 2007

可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。标准输处和标准错误重定向到同一log文件中

1 2 3 4 5 $ ./test.sh > test2.log 2>&1   $ cat test2.log ./test.sh: line 1: t: command not found Tue Oct 9 20:53:44 CST 2007

这次,stderr和stdout的内容都被重定向到log文件中了。

实际上, >就相当于1>也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了(stderr已作为stdout的副本),那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。

标准输处和标准错误重定向到不同log文件中
如果只想重定向标准错误到文件中,则可以使用2> file。

1 sh mr_add_test.sh 1>log.log 2>log_err.log

如何将shell脚本的全部执行结果记入一个log文件

1 ./script.sh >>logfile 2>&1

执行脚本script.sh时将错误输出2以及标准输出1都一起以附加写方式导入logfile文件。

即使多次执行脚本,之前的log也仍然存在。

标签:脚本,输出,Shell,log,标准,sh,test,日志,重定向
From: https://www.cnblogs.com/zhangq/p/17786340.html

相关文章

  • Filebeat收集Nginx日志
    4.1为什么收集Nginx日志我们需要获取用户的信息,比如:来源的IP是哪个地域,网站的PV、UV、状态码、访问时间等等;所以需要收集Nginx日志;4.2Nginx日志收集架构图4.3Nginx日志收集实践4.3.1安装Nginxyuminstallnginx-ycat/etc/nginx/conf.d/elk.confserver{ listen5555;......
  • 接口自动化--postman(6)前置脚本
    请求前置脚本:发送请求之前要执行的脚本。 一。什么是前置操作?发送请求之前要执行JavaScript的脚本就叫前置操作。通过在请求、集合或文件夹的Pre-requestScript中写代码,来做的操作都叫前置操作。请求前置脚本常见作用:用来获取动态数据,签名接口数据,加密接口数据动态数据:时......
  • .net 日志系统
    一、在.net中使用日志系统1//可以直接写LogingProvider2services.AddLoging(builder=>{3builder.AddConsole();//consolelog4...5}); 二、文本日志 .net没有提供文本日志,使用第三方的日志库。日志文件按照日期区分,避免单个日志文件过大。限制日志总......
  • windows 在 PowerShell 中,可以使用 `Get-WindowsFeature` 命令来获取 Windows 功能的
    查询:在PowerShell中,可以使用Get-WindowsFeature命令来获取Windows功能的信息,包括已安装和可用的功能。以下是Get-WindowsFeature命令的一些常见参数:-Name:指定要获取的功能的名称。可以使用通配符来匹配多个功能,例如-NameWeb将匹配所有包含"Web"的功能。-Compute......
  • 【ChatGPT系列】Python自定义打印各种颜色的日志
    如何在控制台和文件中同时输出日志?要将日志同时输出到文件和控制台,可以创建并配置一个额外的StreamHandler,然后将其添加到Logger中。下面是一个示例代码,演示如何将日志同时输出到文件和控制台:importlogging#创建Logger对象logger=logging.getLogger("example_logger")......
  • springboot日志配置
    目录logback知识链接......
  • Zephyr重定向日志打印到USB串口
    nRF52840DK开发板的例程大多数是从硬件串口打印日志,然后硬件串口在开发板上通过Jlink转换为USB串口,最后打印到电脑上。这里给出通过52840自己的USB串口打印日志的方法。以zephyr/samples/hello_world例程为例:修改config#使能串口驱动CONFIG_SERIAL=y#使能串口的中断模式(......
  • oracle打开/关闭归档日志ARCHIVELOG
    1.使用SQLPlus登录用户名:sqlplus密码:assysdba 2.查询数据库是否是归档模式:查询结果为“ARCHIVELOG”表示数据库为归档模式SELECTlog_modeFROMv$database;3.关闭数据库shutdownimmediate;4.启动数据库mount模式startupmount;5.启动归档日志alte......
  • 如何批量分别压缩大量大型文件 |7z 7zip cmd powershell RAR
    Background我们经常压缩文件,这点很普通。但有时候会产生分卷压缩的需求。所谓分卷,就是把压缩文件拆分成若干文件,已达到限制单个文件容量上限的目的。在目前的时代下,这种需求非常小众,但以下两种情况还是有可能会有作用。想把非常大的文件/文件夹上传到网盘,但是网盘有单个文件......
  • PowerShell系列(六):PowerShell脚本执行策略梳理
    PowerShell脚本执行策略用于控制何时以及何种方式执行PowerShell脚本。通过执行策略可以限制PowerShell脚本的执行范围,为系统管理员提供一定的安全保障。策略可以限制执行脚本的用户、限制执行脚本的来源等等。这些策略可以在计算机本地或组策略中进行配置。最终保护计算机免......