精华内容
下载资源
问答
  • nohup 日志重定向

    万次阅读 2020-01-15 20:24:20
    nohup command > nohup.log 2>&1 & 以下来自:https://www.cnblogs.com/zhangwuji/p/8059539.html 侵权删 用途:不挂断地运行命令。 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令...

    nohup command > nohup.log 2>&1 &

    以下来自网络

    侵权删

    用途:不挂断地运行命令。
    语法:nohup Command [ Arg ... ] [ & ]
    描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

    操作系统中有三个常用的流:
      0:标准输入流 stdin
      1:标准输出流 stdout
      2:标准错误流 stderr

          一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。

    示例用法1:nohup ./start-dishi.sh >output 2>&1 &

    解释:
    1. 带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 

    2. 2>&1的意思

      这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖,这肯定不是我门想要的. 这就是为什么有人会写成: nohup ./command.sh >output 2>output出错的原因了 。

     

          0,1,2可以用来指定需要重定向的标准输入或输出。在一般使用时,默认的是标准输出,既1。当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program 2>log,这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
          Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪,任何东西都可以定向到这里,但是却无法打开。这一点非常有用,一般很大的stdou和stderr当你不关心的时候或者当我们由于其他原因不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

    例如:

    # ls 1>/dev/null 2>/dev/null

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

    # ls >/dev/null 2>&1

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

         

          由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题。

    # nohup ./program >/dev/null 2>log &

    如果错误信息也不想要的话:

    # nohup ./program >/dev/null 2>&1 &

    展开全文
  • nohup日志信息输出

    2019-10-29 13:50:59
    nohup java -jar demo.jar --server.port=1988 >./logs/demo.log 2>&1 & 现对上面的命令进行下解释 用途:不挂断地运行命令。 语法:nohup Command [ Arg … ] [ & ] 描述:nohup 命令运行由...

    #!/bin/sh

    nohup java -jar demo.jar --server.port=1988 >./logs/demo.log 2>&1 &

    现对上面的命令进行下解释

    用途:不挂断地运行命令。

    语法:nohup Command [ Arg … ] [ & ]

    描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

    操作系统中有三个常用的流:

    0:标准输入流 stdin
    1:标准输出流 stdout
    2 :标准错误流 stderr
    一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。

    解释:

    带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上);

    2>&1的意思
      这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。 至于为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。

    最后谈一下/dev/null文件的作用,这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。 所以一般很大的stdou和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1
     

    原文链接:https://blog.csdn.net/ianly123/article/details/85113539

    展开全文
  • 目录 ...nohup日志回滚 不停服务清空nohup.out日志文件脚本 nohup 日志过大 的处理策略 nohup命令 nohup日志回滚 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 ...

    目录

    nohup日志回滚

    不停服务清空nohup.out日志文件脚本

    nohup 日志过大 的处理策略

    nohup命令


    1. nohup日志回滚


    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 
    http://yellowtop.blogbus.com/logs/3178554.html 

    利用apache的rotatelogs命令实现WebLogic启动命令的nohup的日志回滚: 

    每天写一个日志: 
    nohup ./startWebLogic.sh | /opt/hpws/apache/bin/rotatelogs ./logs/nohuplog 86400 & 

    每200M写一个日志: 
    nohup ./startWebLogic.sh | /opt/hpws/apache/bin/rotatelogs ./logs/nohuplog 200M & 

    每200M写一个日志,按时间日期命令名: 
    nohup ./startWebLogic.sh | /opt/hpws/apache/bin/rotatelogs ./logs/nohup_%Y%m%d%H%M.log 200M &

     

    1. 不停服务清空nohup.out日志文件脚本

    备份nohup日志文件脚本

    在nohup.out 目录下新建nohup_backup.sh 并复制如下代码

    #!/bin/bash
    today=`date +"%Y%m%d"`
    newfile="nohup$today.out"
    echo "Backup log file"
    echo "Start copy nohup.out to $newfile ..."
    cp nohup.out $newfile
    echo "Copy $newfile finished"
    echo "Start clear nohup.out ..."
    cp /dev/null nohup.out
    echo "Clear nohup.out finished"


    执行: ./nohup_backup.sh
    该脚本会把当前的nohup.out文件先复制为nohupxxxx-yy-mm.out 然后清空nohup.out文件。
    备注: chmod a+x nohup_backup.sh 权限 touch nohup_backup.sh 文件    vim 编辑

     

     

    1. nohup 日志过大 的处理策略

    输出的时候用覆盖追加的方式即可.

    nohup sh xxxx.sh >> /var/log/xxxx.log 2>&1 &

    然后可通过cat /dev/null > /var/log/xxxx.log 清空该文件并释放空间

    可以试试 echo “” >> xxx.log

     

    1. nohup命令

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

    1指标准输出;2指错误输出,所以写成这样:command 1>output 2>error & ,正常的输出在output文件里,错误的输出在error文件里,command >output 2>error &

    (1可以省略)

    忽略错误输出:command 1>output 2>/dev/null & 

    忽略标准输出:command 1>/dev/null 2>error &

    忽略全部输出:command 1>/dev/null 2>/dev/null &

    忽略全部输出:command >/dev/null 2>&1 &

    错误输出和标准输出在一个文件:command 1>output 2>&1 &

    错误输出和标准输出在一个文件:command 1>output 2>output & (X这种方式错误)

     

    这样的文件输出,每次运行会覆盖现有的文件,如果我们希望追加而不是覆盖,那么就用>>符号,这样命令就是: command 1>>output 2>>error &

    如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &

    nohup sh run.sh 1>run_info.log 2>run_error.log &

    解释如下:

    2>
    表示把标准错误(stderr)重定向,标准输出(stdout)是1。
    尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。
    2> &1
    1> &2
    2> stderr.log
    1> stdout.log

     

     

     

    展开全文
  • nohup不输出nohup.out日志信息,已解决。

    万次阅读 多人点赞 2019-06-04 18:47:29
    最近项目中使用的springboot打的jar...但是这种方式启动项目会默认生成一个nohup.out的文件来记录日志,而且这个文件太占磁盘内存了,几天下来发现这个文件大小有好几个G,所以为了减少磁盘被大量消耗,决定启动项目...

    最近项目中使用的springboot打的jar包,放到服务器上跑,为了防止关闭终端窗口导致程序挂掉,采用nohup和&组合命令来操作

    命令如下 :

    nohup java -jar test.jar &

    但是这种方式启动项目会默认生成一个nohup.out的文件来记录日志,而且这个文件太占磁盘内存了,几天下来发现这个文件大小有好几个G,所以为了减少磁盘被大量消耗,决定启动项目时不输出nohup.out文件。

    解决方案如下:

    只输出错误信息到日志文件 

    nohup java -jar yourProject.jar >/dev/null 2>log & 


    什么信息也不要 
     

    nohup java -jar yourProject.jar >/dev/null 2>&1 & 

    下面是几个注解:

    使用&后台运行程序:

    • 结果会输出到终端

    • 使用Ctrl + C发送SIGINT信号,程序免疫

    • 关闭session发送SIGHUP信号,程序关闭

    使用nohup运行程序:

    • 结果默认会输出到nohup.out

    • 使用Ctrl + C发送SIGINT信号,程序关闭

    • 关闭session发送SIGHUP信号,程序免疫

    文件描述符

    当执行shell命令时,会默认打开3个文件,每个文件有对应的文件描述符来方便我们使用:

    所以我们平时在执行shell命令中,都默认是从键盘获得输入,并且将结果输出到控制台上。但是我们可以通过更改文件描述符默认的指向,从而实现输入输出的重定向。比如我们将1指向文件,那么标准的输出就会输出到文件中。

    输出重定向

    输出重定向的使用方式很简单,基本的一些命令如下:

    1. >/dev/null

    这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

    2. 2>&1

    这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

    linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

    展开全文
  • linux下nohup日志切割方案

    万次阅读 2017-01-07 11:34:14
    最近在开发一后台服务程序,然后使用nohup java -jar $jarname > nohup.out 2>&1 &执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件大小:...
  • 最近在一hadoop测试集群运行一个spark streaming程序,然后使用nohup ./execute.sh & 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件...
  • 解决nohup忽略输入并把输出追加到"nohup.out"或者nohup忽略输入重定向错误到标准输出端   解决方法: 执行nohup java -jar do_iptable.jar &amp; 运行jar会提示:nohup忽略输入并把...
  • Redis:nohup: 忽略输入并把输出追加到‘nohup.out‘。
  • nohup不输出日志信息的方法

    万次阅读 2017-05-10 14:52:18
    最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管, 过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导致硬 盘空间不足了。...
  • 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件大小: 1、nohup命令解释: a、语法:nohup [command] [args] [&amp;] b、说明:...
  • 运行jar包 长期运行并保存日志到temp.txt nohup java -jar shareniu.jar >...提示nohup: 忽略输入重定向错误到标准输出端 修改命令 nohup java -jar shareniu.jar >temp.txt 2>&1 &
  • 前言 我们为了让某个程序在后台跑,...说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &
  • 执行让程序后台运行,才几天日志就上G了,如果有问题想要查看日志,显然打开文件是一件很麻烦的事,于是我想办法通过减小文件大小:1、nohup命令解释:a、语法:nohup [command] [args] [&]b、说明:nohup 命令...
  • nohup java -jar $jar_file_path >/dev/null 2 >& 1 & new_agent_pid=$! # java -jar $jar_file_path >/dev/null 2>&1 & new_agent_pid=$! echo " $new_agent_pid " > $DIALUP_PID echo "启动...
  • nohup ./frps -c ./frps.ini & 改正为 nohup ./frps -c frps.ini >/dev/null 2>&1 & 问题是怎么被解决的、 在后面追加了命令。其中,>为输出重定向符号,>/dev/null 2>&1。这...
  • 关于Linux中nohup.out日志过大问题 背景,java项目,一般在运行JAVA程序时需要用到nohup命令来实现后台启动日志,默认保存在当前目露nohup.out文件。但是有些程序输出nohup文件会出现过大的情况。 在此解决如下: ...
  • Linux nohup不输出日志文件的方法

    千次阅读 2019-03-31 17:01:36
    Linux上部署视频流推送应用时,由于网络不稳定等原因程序会不断的输出错误信息,结果导致程序运行一天下来日志文件直接占满磁盘,解决方法就是不再输出日志文件,命令如下: 只输出错误信息到日志文件: nohup ./...
  • 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &amp; ( 表...
  • 关于Linux中nohup.out日志过大问题   在此解决如下: 1,在nohup.out 所在目录创建一个ClearNohup.sh 脚本,通过定时任务让其每周清理一次。防止nohup文件过大问题。 #!/bin/bash # Author: Ljohn # Last ...
  • nohup

    2020-04-29 18:30:18
    nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的...
  • Linux 之 nohup命令不产生日志文件

    千次阅读 2019-05-24 15:10:29
    众所周知,nohup命令可以将程序以忽略挂起信号的方式运行起来,而其输出都将附加到nohup.out文件中,这便于我们查看程序的运行情况。 而当在运行自带生成日志的程序来说nohup.out又显得过于鸡肋,一方面功能重复,...
  • nohup /opt/servers/hive-1.2.1/bin/hive --service metastore 2>&1> /dev/null & nohup /opt/servers/hive-1.2.1/bin/hive --service hiveserver2 2>&1> /dev/null & 改为以下: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,797
精华内容 1,918
关键字:

nohup忽略日志