2014-11-04 69 views
0

我在Linux環境中運行一個shell腳本來創建一些日誌(動態日誌文件)作爲文本文件。將運行時間日誌存儲在文件夾中

我想在某個特定時間後將所有創建的日誌文件存儲到一個文件夾中。

那麼我該怎麼做呢?任何人都可以建議一些命令

在此先感謝。

回答

0

在腳本中,您可以將該目錄定義爲一個變量,並且您可以在該腳本中使用該目錄。

#!/bin/bash 

LOG_DIR=/tmp/logs 
LOG_FILE=$LOG_DIR/log_file.$$ ## $$ will create the different log file for each and every run 
           ## You can also do it by using some time stamp using date command. 

<Your commands> >> $LOG_FILE 
+0

嗨Shriharsha,我在Linux服務器上執行一些服務器統計收集命令,並且日誌文件內容在特定的時間範圍內得到更新。因此,在特定的時間跨度之後,我想將所有創建的文件存儲在1個文件夾中,以便我可以輕鬆收集。在shell腳本執行完成後應該創建一個文件夾。 – user3627319 2014-11-05 10:21:26

+0

嗨Shriharsha,我能夠創建一個文件夾(有權限),我將在其中存儲運行時日誌。我正在使用LOG_DIRECTORY1 = $(mkdir -m 777 DEMO _ $ {HOST} _ $ {NOW1} _50users)命令來創建具有權限的目錄。之後,我通過vmstat -n 10 400> VMStat_DEMO _ $ {HOST} _ $ {NOW} .txt&命令創建日誌。之後,將創建的文件移動到創建的目錄中,我正在使用mv -t $ LOG_DIRECTORY1 VMStat_DEMO _ $ {HOST} _ $ {NOW} .txt命令。但它不起作用。 HOST和NOW是預定義的變量。請幫幫我。 – user3627319 2014-11-05 13:48:15

0

這真的取決於你的情況:

[建議,如果你的日誌文件的大小小] 您可能要備份你的日誌通過只需添加一個cron作業,並壓縮/ tar來另一個文件夾,作爲快照。由於日誌文件很小,即使是zip/tar也可能需要很多年才能填滿硬盤。

[建議如果您的日誌文件很大] 在您的生成日誌的腳本中,您可能希望輪換通過幾個索引文件,比如log.0到log.6,每個文件從一個星期到週六。您可以使用另一個腳本來備份昨天的日誌(這樣它就不會在日誌生產者和日誌消費者(即日誌移動者/複製者)之間存在競爭狀態)。您可以制定多少天備份仍存在的策略,以及這些策略應該丟棄多長時間。

昨天的日誌搬運器/複印機可以通過cron工作輕鬆完成。

相關問題