【问题标题】:Solaris logadm log rotationSolaris logadm 日志轮换
【发布时间】:2016-06-15 08:33:53
【问题描述】:

我会撒谎以了解 logadm 的工作原理。 因此,通过查看在线资料,我编写了一个小脚本,将日期重定向到日志文件并休眠 1 秒。这将在无限循环中运行。

#!/usr/bin/bash

while true
do
echo `date` >>/var/tmp/temp.log
sleep 1
done

在此之后我执行了以下命令:

logadm -w /var/tmp/temp.log -s 100b
logadm -V

我的上述命令的意图是日志(/var/tmp/temp.log)应该每 100 个字节轮换一次。

但是在设置了这些之后,当我在后台运行脚本时,我看到日志文件没有旋转。

 # ls -lrth /var/tmp/temp.log*
-rw-r--r--   1 root     root        7.2K Jun 15 08:56 /var/tmp/temp.log
 #

【问题讨论】:

    标签: shell unix solaris


    【解决方案1】:

    据我了解,您必须调用它才能工作,例如从 crontab 或手动像 logadm -c /var/tmp/temp.log (通常放在 crontab 中)

    Sidenode:你可以简单地写date >> /var/tmp/temp.log w/o echo。

    【讨论】:

      【解决方案2】:

      这不是我通常会这样做的方式,而且我认为您可能误解了 -w 选项。

      -w 选项使用命令行上的参数更新 /etc/logadm.conf,然后 logadm 在凌晨 3 点后的 10 分钟运行(在我检查的机器上)。

      我拿了你的脚本并运行它,然后运行: “logadm -s 100b /var/tmp/temp.log” 它工作得很好。试试看! :-)

      【讨论】:

      • 我也试过这个。只有当执行这个命令 logadm -s 它会旋转并创建一个新文件但它不会从那里继续。新文件将在新创建的文件中堆积数据。所以它只旋转一次。这不符合目的。
      • 您需要创建一个 crontab 条目,事实上在 Solaris 10 和 11 中默认有一个在 03:10 运行。您还需要在 /etc/logadm.conf 中添加一些内容(执行 man logadm 和 logadm.conf)。您的条目可能如下所示:“templog -s 100b /var/tmp/temp.log”
      猜你喜欢
      • 1970-01-01
      • 2020-07-15
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2019-02-11
      • 2013-08-06
      • 2015-01-16
      相关资源
      最近更新 更多