Solarisのログのローテションの変更をしたくて下記のシェルをかいたのですが、

30日以上前のログファイルが削除されないです。
すいません、どうなおせばいいでしょうか。
よろしくお願いします。

#!/bin/sh

DATE=`date +%Y%m%d`
#
# Rotate messages
#
LOGDIR=/var/adm
LOG=messages
cd $LOGDIR
if [ -f $LOG -a ! -f $LOG.$DATE ]; then
mv $LOG $LOG.$DATE
cp /dev/null $LOG
chmod 644 $LOG
fi

find $LOGDIR -name ”LOG*” -mtime +31 | /bin/rm -f
#
# Rotate syslog
#
LOGDIR=/var/log
LOG=syslog
cd $LOGDIR
if [ -f $LOG -a ! -f $LOG.$DATE ]; then
mv $LOG $LOG.$DATE
cp /dev/null $LOG
chmod 644 $LOG

/etc/init.d/syslog stop > /dev/null
/etc/init.d/syslog start > /dev/null
fi

find $LOGDIR -name ”LOG*” -mtime +31 | /bin/rm -f

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/30 10:56:55
  • 終了:--

回答(5件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982004/11/30 11:04:57

ポイント16pt

find $LOGDIR -name ”LOG*” -mtime +31 -exec rm -f{}¥;

としないと 削除できないのでは?

id:meichi

ありがとうございます。

すいません。

find: incomplete statement

とおこられてしまうのですが。

2004/11/30 11:22:23
id:Marin_MTB No.2

Marin_MTB回答回数40ベストアンサー獲得回数52004/11/30 11:13:02

ポイント16pt

URLはダミーです。

まず、findの項が変です。

恐らくは、

find $LOGDIR -name ”${LOG}.*” -mtime +31 | /bin/rm {} ¥;

になるんだろうと思います。

それと、これは趣味の世界でしょうが、

> /etc/init.d/syslog stop > /dev/null

> /etc/init.d/syslog start > /dev/null

は、

pkill -HUP syslogd

または、

kill -HUP `cat /var/run/syslog.pid`

の方が瞬断も起こりませんので、こちらが良いと思います。

もっと言ってしまうと、Solaris9からはlogadmというコマンドが新設されましたので、そちらを使用されると幸せになれるかもしれません。

id:meichi

ありがとうございます。

すいません。実行すると下記になります。

{}: No such file or directory

;: No such file or directory

{}: No such file or directory

;: No such file or directory

2004/11/30 14:54:29
id:YasudaS No.3

YasudaS回答回数351ベストアンサー獲得回数52004/11/30 11:23:53

ポイント16pt

find $LOGDIR -name ”LOG*” -mtime +31 |/binr/rm -f

find $LOGDIR -name ”LOG*” -mtime +31 -exec rm ’{}’ ¥;

id:klamath No.4

klamath回答回数4ベストアンサー獲得回数02004/11/30 11:55:54

ポイント60pt

URLはダミーです。

find $LOGDIR/LOG* -mtime +31 -exec rm {} ¥;

でないでしょうか?

id:meichi

ありがとうございます。

find $LOGDIR/$LOG* -mtime +31 -exec rm {} ¥;

で成功しました。

2004/11/30 15:05:49
id:kimbara No.5

kimbara回答回数638ベストアンサー獲得回数132004/11/30 13:15:31

ポイント16pt

http://sonic64.hp.infoseek.co.jp/2003-11-07.html

find + xargs と find -exec の使い分け

find コマンドの-execでは、実行コマンド ”rm -f{}” とターミネータ ”¥;” の間には、ひとつ以上の空白が必要です。

id:meichi

ありがとうございます。

これでおわります。

2004/11/30 15:06:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません