假如想要把呼吁的输出生存到文件中,你会怎么做?
一个常用的要领就是利用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 ----------------
从中可以看到:
logsave
最终依然乐成的生成了logfile,并将 date
呼吁的执行功效写入个中。logsave
不只仅将呼吁的输出内容写入logfile中,并且还包罗了执行的呼吁,劳务派遣管理系统,呼吁执行的开始时间和呼吁执行竣事的时间.logsave
中的 cmd_prog 可以是一个非凡的 -
,这暗示 logsave
从尺度输入中获取要记录日志的内容,昆山软件开发,这使得 logsave
可以像 tee
一样被利用
ls |wc -l |logsave /tmp/1.txt - >/dev/null cat /tmp/1.txt