服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 利用logsave如何将命令输出保存起来

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

2022-03-10 17:00暗无天日 Linux

logsave命令运行给定的命令,并将命令的输出信息保存到指定的日志文件中。下面这篇文章主要给大家介绍了关于利用logsave如何将命令输出保存起来的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

前言

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

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

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

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

?
1
ls |tee /tmp/ls.txt

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

logsave 的语法非常简单:

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

选项

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

参数

  • 日志文件:指定记录运行信息的日志文件;
  • 指令:需要执行的指令。

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

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

比如下面这个例子

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 删除存放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
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 一样被使用

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

总结

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

原文链接:https://lujun9972.github.io/blog/2018/05/14/使用logsave将命令输出保存起来/

延伸 · 阅读

精彩推荐
  • Linuxhbase 简介

    hbase 简介

    HBase是基于GoogleBigTable模型开发的,典型的key/value系统;下面通过本文给大家介绍hbase的相关知识,感兴趣的朋友一起看看吧...

    动力节点5262022-02-17
  • Linux浅析linux环境变量export命令详解

    浅析linux环境变量export命令详解

    这篇文章主要介绍了浅析linux环境变量export命令详解 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。...

    vileyking5112021-12-01
  • Linux如何设置让自己的linux操作系统更加安全

    如何设置让自己的linux操作系统更加安全

    今天本文就告诉大家如何设置让自己的linux操作系统更加安全。 ...

    Linux教程网5002019-12-02
  • Linux如何在linux系统下配置无线网卡?

    如何在linux系统下配置无线网卡?

    本文介绍在Linux 命令行界面中手动配置无线网卡的方法。目前流行的多数发行版都支持用图形界面的network- manager方便地进行配置,而无需使用本文所介绍的...

    Linux教程网10362019-12-24
  • Linux详解如何备份及恢复 Linux 文件权限

    详解如何备份及恢复 Linux 文件权限

    这篇文章主要介绍了详解如何备份及恢复 Linux 文件权限,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Dan Nanni12012022-01-04
  • LinuxLINUX查看进程的4种方法(小结)

    LINUX查看进程的4种方法(小结)

    这篇文章主要介绍了LINUX查看进程的4种方法(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    是日已过,命亦随减4852020-07-16
  • Linuxlinux学习日记五 磁盘与文件系统管理

    linux学习日记五 磁盘与文件系统管理

    这系列文章主要是一刀写的linux相关学习资料,这篇文章主要介绍了linux下的磁盘与文件系统管理 ,需要的朋友可以参考下 ...

    Linux教程网2492019-12-06
  • Linux敖丙给学妹肝了一周的Linux命令

    敖丙给学妹肝了一周的Linux命令

    上次有学妹跟我聊,刚去公司不熟悉环境,Linux系统不熟悉,今天就跟大家聊聊一些简单实用的Linux命令来面对一些工作中遇到问题。...

    三太子敖丙6672021-11-02