zoukankan      html  css  js  c++  java
  • bash执行命令分别输出正常日志和错误日志

    0. 说明

    执行bash命令的定时任务时候,希望能把正常的日志输出到一个文件里面,同时如果执行的过程发生异常则把异常日志输出到另一个不同的文件中。方便今后异常排查,极大有利于快速定位出错位置。

    需要了解“>”是覆盖文件原来的内容,“>>”是在文件内容最下方追加。

    “1>”或“1>>”是正常标准输出,“2>”或“2>>”是异常输出。

    1.执行命令

    只需要在执行的命令后面加上正常输出和异常输出的命令即可,如下所示:

    执行bash命令 >> ./正常输出日志文件路径 2>> ./异常输出日志文件路径
    

    2.举例

    2.1执行命令

    比如,没有“/noPath”这个目录,如果执行“ls /noPath”目录,则一定会报错;但是执行“ls /”是一定成功的。
    如:

    新建一个脚本文件test.sh,内容为

    #!/bin/bash
    ls / >> ./1.log 2>> ./2.log #成功,1.log里面会有根目录的所有文件夹,而2.log没有内容
    ls /noPath >> ./1.log 2>> ./2.log #失败,1.log没有这个命令的内容,而2.log会有错误输出
    

    执行脚本“sh test.sh”后,可以在test.sh的同级目录可以看到新生成了两个文件1.log和2.log。

    2.2查看结果

    查看1.log,正常日志都在这里,而且没有异常日志:

    [jay@master shell]$ cat 1.log
    bin
    boot
    dev
    etc
    home
    
    

    查看2.log,异常日志都在这里,而且没有正常日志:

    [jay@master shell]$ more 2.log
    ls: cannot access /noPath: No such file or directory
    

    从而结论得以验证。

  • 相关阅读:
    运动员排成绩————————对多个数组进行排序
    关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存
    axel 原来求中点我想复杂了 两个结果一样
    Bezier曲线绘制 B样条绘制
    最大的回文子串
    字符数组
    按位与、或、异或等运算方法
    uniapp mixin 使用
    vue mixin执行覆盖
    windows10 安装NASM
  • 原文地址:https://www.cnblogs.com/fefjay/p/6044464.html
Copyright © 2011-2022 走看看