Shell Solaris logadm日志旋转

Shell Solaris logadm日志旋转,shell,unix,solaris,Shell,Unix,Solaris,为了理解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 我在上面的命令中的意图是,log(/var/tmp/temp

为了理解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
我在上面的命令中的意图是,log(/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
 #

据我所知,您必须调用它来执行工作,例如从crontab或手动调用,如
logadm-c/var/tmp/temp.log
(通常将CD放入crontab中)


侧节点:您可以简单地编写
date>/var/tmp/temp.log
w/o echo。

这不是我通常的做法,而且我认为您可能误解了-w选项

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

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

我也试过这个。只有当执行这个命令logadm-s时,它才会旋转并创建一个新文件,但不会从那里继续。新文件将在新创建的文件中堆积数据。所以它只旋转一次。这不起作用。您需要创建一个crontab条目,事实上,Solaris 10和11中默认有一个条目在03:10运行。您还需要在/etc/logadm.conf中添加一些内容(执行man-logadm和logadm.conf)。您的条目可能如下所示:“templog-s100b/var/tmp/temp.log”