利用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

总结

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

相关文章

  • CentOS桌面环境中网卡启动失败的解决方法

    CentOS桌面环境中网卡启动失败的解决方法

    这篇文章主要为大家详细介绍了CentOS桌面环境中网卡启动失败的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Linux下安装tomcat并部署网站(推荐)

    Linux下安装tomcat并部署网站(推荐)

    这篇文章主要介绍了Linux下安装tomcat并部署网站,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • centOS6中使用crontab定时运行执行jar程序的脚本

    centOS6中使用crontab定时运行执行jar程序的脚本

    这篇文章主要介绍了centOS6中使用crontab定时运行执行jar程序的脚本,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Apache Pulsar集群搭建部署详细过程

    Apache Pulsar集群搭建部署详细过程

    这篇文章主要介绍了Apache Pulsar集群搭建过程,搭建Pulsar集群至少需要3个组件:ZooKeeper集群、BookKeeper集群和Broker集群,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • CentOS 8设置自动更新的完整步骤

    CentOS 8设置自动更新的完整步骤

    这篇文章主要给大家介绍了关于CentOS 8设置自动更新的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用CentOS 8具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • linux记录用户登录日志与命令执行日志方式

    linux记录用户登录日志与命令执行日志方式

    文章介绍了在/etc/profile文件末尾增加代码并执行source使其生效后,不同用户会在/var/log/history目录下以用户名为目录名的子目录中,进入对应目录后有以用户登录时间及IP为名字的文件,文件内容为用户执行命令的日志信息
    2024-12-12
  • 基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP稳定版架构搭建的VPS

    基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP稳定版架构搭建的VPS

    经过几个小时的编译安装配置,基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP稳定版架构搭建的VPS终于稳定运行。
    2010-12-12
  • 浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,支持很多其他的 FTP 服务器所不支持的特征。这篇文章主要介绍了Linux中vsftpd服务配置(匿名,用户,虚拟用户),需要的朋友可以参考下
    2019-11-11
  • CentOS7下Firewall防火墙配置用法详解(推荐)

    CentOS7下Firewall防火墙配置用法详解(推荐)

    centos 7中防火墙是一个非常的强大的功能了,这篇文章主要介绍了CentOS7下Firewall防火墙配置用法详解(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。
    2016-12-12
  • linux下php-fpm开启关闭使用方法

    linux下php-fpm开启关闭使用方法

    自php5.3.3开始,php源码中包含了php-fpm,不需要单独通过补丁的方式安装php-fpm,在源码安装的时候直接 configure 中增加参数 –enable-fpm即可,使用方法如下
    2014-03-03

最新评论