日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux日志添加到文件,关于linux:将变量中的内容追加到日志文件中

發布時間:2024/7/19 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux日志添加到文件,关于linux:将变量中的内容追加到日志文件中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個腳本,并嘗試將我的變量中的內容附加到.log文件。 我在另一篇文章中看到了(如何通過命令行將變量文本附加到文件的最后一行?),你可以使用echo"$(cat $ FILE)$ APPEND"> $ FILE來完成。 我嘗試這樣做,它能夠無錯誤地運行我的腳本,并通過終端提供我需要的答案,但它不會將其附加到我的日志文件中。 任何人都可以給我任何指示?

#!/bin/bash

mdate=echo date

mcpu=echo $[100-$(vmstat 1 2 |tail -1|awk ‘{print $15}’)]%

mmem=free | grep Mem | awk ‘{print $3/$2 * 100.0}’

sudo cat /dev/null > /home/daniel/systemstatus.log

echo"$(cat $systemstatus.log)$mdate">> $systemstatus.log

echo"$(cat $systemstatus.log)$mcpu">> $systemstatus.log

echo"$(cat $systemstatus.log)$mmem">> $systemstatus.log

您的代碼需要多次修改,您無法按照您嘗試的方式使用命令輸出分配變量,您需要使用命令替換(var=$(command)):

mdate=$(date)

mcpu=$(( 100 - $(vmstat 1 2 | tail -1| awk '{print $15}') ))

mmem=$(free | grep Mem | awk '{print $3/$2 * 100.0}')

您的帖子包含對shell無效的引號。使用單引號'或雙引號"(每個都有其目的)。

但是記錄部分比你想象的要簡單

logfile=/home/daniel/systemstatus.log

echo"$mdate">"$logfile" ?# Overwrites the previous log file

echo"$mcpu" ?>>"$logfile" # Appends to the log file

echo"$mmem" ?>>"$logfile" # Appends to the log file

如果在變量中捕獲命令輸出的唯一原因是日志記錄,則可以通過重定向到日志文件而不捕獲輸出來進一步簡化。

date >"$logfile" # Overwrites the previous log file

echo $(( 100 - $(vmstat 1 2 | tail -1| awk '{print $15}') )) >>"$logfile"

free | grep Mem | awk '{print $3/$2 * 100.0}' >>"$logfile"

您甚至可以先重定向,根據您的喜好,它可能更清潔:

>"$logfile" ?date # Overwrites the previous log file

>>"$logfile" echo $(( 100 - $(vmstat 1 2 | tail -1| awk '{print $15}') ))

>>"$logfile" free | grep Mem | awk '{print $3/$2 * 100.0}'

這個答案假設您的命令實際上有效(我還沒有測試過它們)。

非常感謝幫助伙伴,這樣做了,解釋也很棒!

以下應該有效:

#!/bin/bash

mdate=$(echo date)

mcpu=$(echo $[100-$(vmstat 1 2 |tail -1|awk '{print $15}')]%)

mmem=$(free | grep Mem | awk '{print $3/$2 * 100.0}')

>/home/daniel/systemstatus.log

echo"$(cat $systemstatus.log)$mdate">> systemstatus.log

echo"$(cat $systemstatus.log)$mcpu">> systemstatus.log

echo"$(cat $systemstatus.log)$mmem">> systemstatus.log

請注意,如果您希望將命令的輸出存儲在bash中,則應該在$()或``中對命令進行舍入。但是,現在不推薦使用嚴重重音符。

此外,使用cat / dev / null>在Linux中清空文件基本上與使用>的結果基本相同

至于您遇到的問題,請注意在任何單詞之前附加$基本上會使腳本/命令查找具有此類名稱而不是文件名的變量。

問候

非常感謝!

嘗試在systemstatus之前刪除$

鍵入$systemstatus時,它表示名為"systemstatus"的變量,而不是systemstatus文件。

我想OP在當前目錄中創建了一個文件.log

非常感謝!

總結

以上是生活随笔為你收集整理的linux日志添加到文件,关于linux:将变量中的内容追加到日志文件中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。