2014-11-04 68 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工作轻松完成。

相关问题