• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    利用logsave如何将命令输出保存起来

    前言

    如果想要把命令的输出保存到文件中,你会怎么做?

    一个常用的方法就是使用IO重定向吧

    ls >/tmp/ls.txt 2>&1

    如果需要在将命令输出保存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以使用 tee 命令

    ls |tee /tmp/ls.txt

    不过,我今天发现还有一个 logsave 的命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中。

    logsave 的语法非常简单:

    logsave [ -asv ] logfile cmd_prog [args ... ]

    选项

    -a:追加信息到指定的日志文件中。

    参数

    logsave 会执行 cmd_prog args... 并将命令输出的副本保存到 logfile 中. 而它厉害的地方在于 即使logfile所在的目录不存在,logsave也会将输出保存到内存中,等到logfile所在的目录建立后再将内容写入到日志文件中

    logsave 的这个特性使得它很适合用于系统启动脚本中,将输出的内容保存到内存中,直到 /var/ 目录挂载后再将内容写入 /var/log/ 中

    比如下面这个例子

    # 删除存放logfile的目录
    rm -rf /tmp/logdir
    # 使用logsave保存logfile
    logsave /tmp/logdir/logfile bash -c "sleep 2;date"
    # 创建logdir
    mkdir /tmp/logdir
    echo 查看logfile是否生成:
    ls -l /tmp/logdir
    echo 等待2s后:
    sleep 2
    echo 再次查看logfile是否生成:
    ls -l /tmp/logdir
    echo 查看logfile的内容:
    cat /tmp/logdir/logfile
    2018年 05月 14日 星期一 16:31:44 CST
    查看logfile是否生成:
    总用量 0
    等待2s后:
    再次查看logfile是否生成:
    总用量 4
    -rw-r--r-- 1 lujun9972 lujun9972 141 5月 14 16:31 logfile
    查看logfile的内容:
    Log of bash -c sleep 2;date 
    Mon May 14 16:31:42 2018
    
    2018年 05月 14日 星期一 16:31:44 CST
    
    Mon May 14 16:31:44 2018
    ----------------

    从中可以看到:

    logsave 中的 cmd_prog 可以是一个特殊的 - ,这表示 logsave 从标准输入中获取要记录日志的内容,这使得 logsave 可以像 tee 一样被使用

    ls |wc -l |logsave /tmp/1.txt - >/dev/null
    cat /tmp/1.txt

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    上一篇:IntelliJ IDEA Tomcat配置详解(图文)
    下一篇:Nginx配置SSL自签名证书的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    利用logsave如何将命令输出保存起来 利用,logsave,如何,将,命令,