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

 更新时间:2018年05月22日 08:42:58   作者:暗无天日  
logsave命令运行给定的命令,并将命令的输出信息保存到指定的日志文件中。下面这篇文章主要给大家介绍了关于利用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
----------------

从中可以看到:

  • 虽然一开始logfile由于logdir不存在而无法生成,但是在创建logdir后, logsave 最终依然成功的生成了logfile,并将 date 命令的执行结果写入其中。
  • logsave 不仅仅将命令的输出内容写入logfile中,而且还包括了执行的命令,命令执行的开始时间和命令执行结束的时间.

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

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

总结

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

相关文章

  • Ubuntu10.10配置网络

    Ubuntu10.10配置网络

    这里虽然说的是10.10的,但其它UBUNTU上也可以参考使用。
    2013-11-11
  • Linux下对各种压缩文件的处理方法

    Linux下对各种压缩文件的处理方法

    下面小编就为大家带来一篇Linux下对各种压缩文件的处理方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • httpd.conf 二级域名设置方法

    httpd.conf 二级域名设置方法

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com 其次,在 httpd.conf 中打开 mod_rewrite
    2009-02-02
  • CentOS7中防火墙的一些常用配置介绍

    CentOS7中防火墙的一些常用配置介绍

    centos 7中防火墙是一个非常的强大的功能了。这篇文章主要介绍了CentOS7中防火墙的一些常用配置,需要的朋友可以参考下
    2016-12-12
  • linux下安装mongodb教程

    linux下安装mongodb教程

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。这篇文章主要介绍了linux下安装mongodb,需要的朋友可以参考下
    2019-12-12
  • centeros7 安装配置环境jdk1.8的教程

    centeros7 安装配置环境jdk1.8的教程

    这篇文章主要介绍了centeros7 安装配置环境jdk1.8的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • VSCode连接实验室服务器Xshell,Xftp向服务器传输文件的方法(win10)

    VSCode连接实验室服务器Xshell,Xftp向服务器传输文件的方法(win10)

    这篇文章主要介绍了VSCode连接实验室服务器,Xshell,Xftp向服务器传输文件(win10),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Linux使用ssh公钥实现免密码登录实例

    Linux使用ssh公钥实现免密码登录实例

    本篇文章主要介绍了Linux使用ssh公钥实现免密码登录实例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 树莓派搭建nas服务器的详细过程

    树莓派搭建nas服务器的详细过程

    这篇文章主要介绍了树莓派搭建nas服务器的教程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Apache设置目录禁止访问

    Apache设置目录禁止访问

    这篇文章主要介绍了如何在Apache中设置目录禁止访问,非常的简单实用,有需要的朋友可以参考下
    2014-11-11

最新评论