您好,登錄后才能下訂單哦!
小編給大家分享一下怎么利用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
看完了這篇文章,相信你對“怎么利用logsave將命令輸出保存起來”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。