欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: 暗无天日

假如想要把呼吁的输出生存到文件中,你会怎么做?

一个常用的要领就是利用IO重定向吧

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

假如需要在将呼吁输出生存到文件中的同时还需要将内容也输出到屏幕中的话,那么我们可以利用 tee 呼吁

ls |tee /tmp/ls.txt

不外,我本日发明尚有一个 logsave 的呼吁,也可以做到将呼吁输出生存到文件的同时将内容页输出到屏幕中。

logsave 的语法很是简朴:

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

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

从中可以看到:

  1. 固然一开始logfile由于logdir不存在而无法生成,可是在建设logdir后, logsave 最终依然乐成的生成了logfile,并将 date 呼吁的执行功效写入个中。
  2. logsave 不只仅将呼吁的输出内容写入logfile中,并且还包罗了执行的呼吁,劳务派遣管理系统,呼吁执行的开始时间和呼吁执行竣事的时间.

logsave 中的 cmd_prog 可以是一个非凡的 - ,这暗示 logsave 从尺度输入中获取要记录日志的内容,昆山软件开发,这使得 logsave 可以像 tee 一样被利用

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