博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Linux输出重定向将debug信息和ERROR信息分离
阅读量:6152 次
发布时间:2019-06-21

本文共 1151 字,大约阅读时间需要 3 分钟。

最近在安装Apache sentry,发现启动metastore和hiveserver2服务的时候会弹出大量的debug信息,有时候需要在一长串的信息中寻找ERROR信息,觉得挺花时间的,于是想到使用重定向将debug信息输出到指定的debug目录下,ERROR信息输出到ERROR目录下,这样能提高效率。


1、下面先简要介绍一下Linux重定向


0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。 

在一般使用时,默认的是标准输出,即1.当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:

./program 2> log
  • 1
  • 2

这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。例如:

2>&1
  • 1

表示将错误信息重定向到标准输出。

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:

ls 1> /dev/null 2> /dev/null
  • 1

还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

ls >/dev/null 2>&1
  • 1

注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄:-)


2、后台运行指定程序,并将输出重定向


为了让指定程序在后台运行,需要使用nohup命令,格式如下:

nohup 
<程序名>
&
  • 1

但是,需要注意的是,使用nohup时,会自动将输出写入nohup.out文件中,且nohup.out文件保存在执行该命令的当前目录。为了将提示信息和错误信息分别存储在指定路径下,需要使用重定向。

将提示信息存储在/usr/local/sentry/log/debug.out,将ERROR 信息存储在/usr/local/sentry/log/error.out下。

nohup 
<程序名或服务>
1>> /usr/local/sentry/log/debug.out 2>> /usr/local/sentry/log/error.out &

转载于:https://www.cnblogs.com/fire909090/p/8134171.html

你可能感兴趣的文章
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>
MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
查看>>
生日小助手源码运行的步骤
查看>>
Configuration python CGI in XAMPP in win-7
查看>>
bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP
查看>>
CF 888E Maximum Subsequence——折半搜索
查看>>
欧几里德算法(辗转相除法)
查看>>
面试题1-----SVM和LR的异同
查看>>
MFC控件的SubclassDlgItem
查看>>
如何避免历史回退到登录页面
查看>>
《图解HTTP》1~53Page Web网络基础 HTTP协议 HTTP报文内的HTTP信息
查看>>
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>
http协议组成(请求状态码)
查看>>