log�n越�碓酱螅�Solaris 9提供你一��好用的指令�砉芾�log�n的�替。
在�_始之前有��故事要和大家分享。有一次我朋友的公司�e有一台Sun的�C器疑似crash後重�_�C,他的第一��反��是去看 messages log,�Y果使用vi�黹_��messages�n�r,vi跑了二分多�後,�G出一���息"�n案太大了,它�_不了"。他�D�^����我怎�N���@�樱快妒俏医邮�兔μ�理。�绦�uptime的�Y果�_�J是有重�_�C�^,但�楹沃亻_�C?�t要看messages的�热莶��知道,���}是vi�_不了messages,所以我只好用tail+more�砺�慢看。�槭颤N�_不了呢?一看才知messages�@���n案竟然超�^ 2G,最早的一�P��是四年多前的。天呀!
接著想了解在�C器�斓糁�前有�l在�上操作,�Y果last一跑......�s五分�後�幕才�_始有�|西跑出�怼�槭颤N呢?因�楹�last相�P的�n案wtmpx也超�^500MB......。最早的��的�r�g我已�不想知道了。(messages不是有newsyslog��去�Q�n案�幔渴堑模�但不知在何�rcrontab�e已��]有�@一�存在了。唉,天兵管理�T!)
早期的Solaris(9 以前)�K�]有一��真正可用的log�替程式�碜鱿到ylog的管理。所以如果管理�T�]有自己做�m��的�理,硬碟空�g很容易就被吃光了。不然就���l生像上述的事情,�n案大到很�y�_��。
以往的Solaris就只有一支newsyslog的���script�碜�messages的�替的工作。不然就要自己安�blogrotate的套件�碜鲞@一�的工作。�m然logrotate很好用,但�是�要抓下�戆惭b。不�^自��Solaris 9�_始,Sun�K於�到使用者的�音了。
Solaris 9�_始提供了一支程式logadm�iT用�碜鱿到ylog的管理工作。��人�X得它和logrotate�有�c相像,只是它的�O定是一��log�n一行,而logrotate是一��log�n一���^�K。下面就�砜纯�logadm要如何使用。
logadm有一���O定�n/etc/logadm.conf,��n是一���文字�n,所以你可以直接用vi去��它,或是使用logadm�碜�更�O定。�m然可以直接���O定�n,不�^使用logadm�碜�更�O定�rlogadm���z查�Z法是否正�_,所以建�h�是使用指令去�更�O定。
Solaris在安�b完成後,root的crontab�A�O就��有一些�|西定期的去�绦校�其中一��就是logadm。你可以用crontab -l�聿榭础K�以只要把�O定�n��好後,系�y就��自��绦校�你也不用再操心了。接下�砭�砜纯�logadm要如何使用。
logadm的�Z法大致上看起�砭拖裣旅孢@���幼樱�
第一����凳�log�n的名字(不全然是,後面���f明),�@�e我��用的是/var/adm/sshdlog。-p指的是�L期(period),�@��值是�底纸�d(day)、w(week)、m(month)、y(year)。如10d,表10天;2w,表二��星期,14天。m�m然是指月,但���H是三十天哦!它可不��自�臃直娲笮≡隆A硗膺�有二��特�e的�r�g值,一��就是上面用的now,另外一��是never 。now就是不管如何,�F在�R上�o我�Q掉;never�t是永�h都不要�Q,除非其他�l件成立。
logadm的��岛芏啵�下表列出���常用的���
-C n | 保留的�盗浚�如果�]有指定任何的�^期�l件,�A�O��-C 10。 |
-p n[dwmy] | �替�L期 |
-s n[bkmg] | �n案大小,��指定的log�n的大小大於等於�@��值�r就更�Q。 |
-z n | 使用gzip��嚎s被更�Q掉的�f�n。 |
-a | log�n更�Q後要�绦械闹噶睢� |
-b | log�n更�Q前要�绦械闹噶睢� |
-g | 新�n案的�碛腥航M,不�o就和原�n案一�印� |
-o | 新�n案的�碛腥耍�不�o就和原�n案一�印� |
-m | 新�n案的�嘞蓿�不�o就和原�n案一�印� |
-w | �⒋嗽O定��入�O定�n。 |
-r | �⒋嗽O定�脑O定�n中移除。 |
-V | 列出�O定�n的�热荨� |
假�Oapache的error_log,希望每10MB�Q一次,最少保留8份;另外�榱吮苊饫速M空�g,�f的�n案要�嚎s。下面的�例可以�M足我��的需求。
# logadm -w /var/apache/logs/error_log -C 8 -s 10m -z0 -a 'kill -HUP `cat /var/run/apache2/httpd.pid`'然後是access_log,由於log要留做分析使用,所以最少要保留2��月:也�榱吮苊�我�n案太大,所以每��星期要�Q一��新的�n案。
# logadm -w /var/apache/logs/access_log -C 9 -p 1w -a 'kill -HUP `cat /var/run/apache2/httpd.pid`'logadm在�n案名�Q部份也支援*,?,{}。所以上面的例子也可以改成下面的方式
# logadm -w apache_log -C 9 -p 1m -a 'kill -HUP `cat /var/run/apache2/httpd.pid`' /var/apache/logs/{access,error}_log