【问题标题】:Storing run time logs in a folder将运行时日志存储在文件夹中
【发布时间】:2014-11-04 07:55:26
【问题描述】:

我在 Linux 环境中运行一个 shell 脚本来创建一些日志(动态日志文件)作为文本文件。

我想在某个特定时间后将创建的所有日志文件存储到一个文件夹中。

那我该怎么做呢?谁能建议一些命令?

提前致谢。

【问题讨论】:

    标签: linux shell command


    【解决方案1】:

    在脚本中,您可以将该目录定义为变量,并且可以在整个脚本中使用该目录。

    #!/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
    

    【讨论】:

    • 嗨 Shriharsha,我正在 Linux 服务器中执行一些服务器统计信息收集命令,并且日志文件内容在特定时间跨度内得到更新。因此,在特定时间跨度之后,我想将所有创建的文件存储在 1 个文件夹中,这样我就可以轻松收集。在完成 shell 脚本执行后,还应该创建文件夹。
    • 嗨 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 是预定义的变量。请帮帮我。
    【解决方案2】:

    这真的取决于你的情况:

    [如果您的日志文件很小,建议使用] 您可能希望通过添加一个 cron 作业来备份您的日志,然后将其压缩/tar 到另一个文件夹中,作为快照。由于日志文件很小,即使是 zip/tar 文件也可能需要很多年才能填满您的硬盘。

    [如果您的日志文件很大,建议使用] 在生成日志的脚本中,您可能希望轮换几个索引文件,例如 log.0 到 log.6,每个文件对应一个星期,从星期日到星期六。您可以使用另一个脚本来备份昨天的日志(这样它就不会在日志生产者和日志消费者之间出现竞争条件,即日志移动器/复制器)。您可以制定策略来确定仍存在多少天的备份,以及应该丢弃多长时间。

    昨天的日志移动器/复制器可以通过 cron 作业轻松完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多