• ベストアンサー
  • すぐに回答を!

2時間おきに時刻を新規ログに書き込む

Linuxで2時間おきに時刻を新規のログに書き込みたいのですが、 うまく表示されません。 syslog.confに新しく2時間おきに時刻を書き込むログを加え、 新規ログに Sep 18 07:00:01 tky015 logger: 只今の時刻は 7時00分です Sep 18 08:00:01 tky015 logger: 只今の時刻は 8時00分です Sep 18 09:00:01 tky015 logger: 只今の時刻は 9時00分です Sep 18 10:00:01 tky015 logger: 只今の時刻は 10時00分です Sep 18 11:00:01 tky015 logger: 只今の時刻は 11時00分です という風に表示させたいです。 新規ログをtest.logとし、メッセージの表示はシェルを使用し、以下のようになりました。 ファイル名はtime.shです。 #!/bin/sh MESS='只今の時刻は' DATE1=`date "+%k"`'時' DATE2=`date "+%M"`'分' MESS=$MESS$DATE1$DATE2'です' logger -f /var/log/test.log $MESS 2時間おきに時刻を表示させるためにcronを使い、 * */2 * * * /bin/sh /root/time.sh syslog.confには、 #2時間おきに時間を書き込むログ cron.*         /var/log/test.log というふうにやりましたが、 時刻は/var/log/messagesに書き込まれてしまい、/var/log/test.logには Sep 17 07:00:01 tky015 crond[6480]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 08:00:01 tky015 crond[6486]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 09:00:02 tky015 crond[6492]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 10:00:01 tky015 crond[6499]: (root) CMD (/bin/sh /root/tanaka.sh) Sep 17 11:00:01 tky015 crond[6506]: (root) CMD (/bin/sh /root/tanaka.sh) というふうに書かれてしまいます…。 syslog.confの書き方が間違っているんじゃないのかなと思うのですが、 どうすればいいのかわかりません。 OSはCentOS05です。 初心者ですので分からないこともあるかも知れませんが、 どなたかご教授ください。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数207
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

loggerのオプションの使い方がおかしいのでは? なにを参考になさいましたか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

回答ありがとうございます。 loggerはこちらを参考にさせて頂きました。 http://cyberam.dip.jp/linux_command/command/system/logger.html# logger [ オプション ] [ メッセージ ] オプションに「-f ファイル名」と書かれていたのでファイル名に新規ログのフルパス、 [メッセージ]の部分に表示したい時刻メッセージの$MESSを持ってくればいいのかなと思ったのですが・・・

関連するQ&A

  • apacheのログでこんなの出たんですけど…

    apacheのログで3日ほど前から以下の様なアクセスが いろいろなIPアドレスから来るのですが 何をやろうとしているのでしょうか? 211.196.98.124 - - [20/Sep/2001:03:32:52 +0900] "GET /scripts/root.exe?/c+dir HTTP/1.0" 403 280 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 403 278 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 288 211.196.98.124 - - [20/Sep/2001:03:32:53 +0900] "GET /d/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 288 211.196.98.124 - - [20/Sep/2001:03:32:54 +0900] "GET /scripts/..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 211.196.98.124 - - [20/Sep/2001:03:32:54 +0900] "GET /_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 319 中略 211.196.98.124 - - [20/Sep/2001:03:32:57 +0900] "GET /scripts/..%%35c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 281 211.196.98.124 - - [20/Sep/2001:03:32:58 +0900] "GET /scripts/..%25%35%63../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 211.196.98.124 - - [20/Sep/2001:03:32:58 +0900] "GET /scripts/..%252f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 403 302 なんとなくdirコマンドでCドライブの内容を調べようとしているのはわかるのですが… 環境はWinNT4.0sp4 apache 1.3.20です。 あと、エラーコード(?)の403と404は知っているのですが 400はどういう意味なのでしょうか? また何か問題はあるのでしょうか?

  • crontabでのシェル自動実行がNG

    いつも参考にさせてもらっています。 linux(Red Hat Enterprise Linux ES release 3 Apache/2.0.46)上でcrontabを設定したいのですが、 現在うまくいっておりません。 まず、autoindex.shというシェルを/home/foo/scripts/ディレクトレィに作成しました。中身は3行からなっていて #!/bin/sh cd /var/www/html/search/index mknmz -a /var/www/html/test です。telnet上でroot権限を使用し、./autoindex.shコマンド発行で正常に動作しました。 そこで、crontabに以下のように # crontab -l 50 11 * * * root /home/foo/scripts/autoindex.sh と設定したところ、 # more /etc/log/cron Sep 27 11:50:01 intra crond[18280]: (root) CMD (root /home/foo/scripts/autoindex.sh ) とcronは決めていた時間(11時50分)に稼動しているようなんですが、mailを見ると # mail -t From root@XXX.com Wed Sep 27 11:50:01 2006 Date: Wed, 27 Sep 2006 11:50:01 +0900 From: root@XXX.com (Cron Daemon) To: root@XXX.com Subject: Cron <root@hoge> root /home/foo/scripts/autoindex.sh X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> /bin/sh: line 1: root: command not found と、シェルがこけているようです。 何か解決のヒントがありましたら、ぜひ教えていただけないでしょうか。

  • シェルスクリプトでPHPを実行したい

    シェルスクリプトでPHPを実行したいのですが、うまくできません。 centos5でcrontabに 20 0 * * * /bin/sh /var/www/html/test/test.sh と登録しています。 cronのlogをみたところ Dec 12 00:20:01 localhost crond[19060]: (root) CMD (/bin/sh /var/www/html/test/test.sh) と記録されていてここまでは問題ないように思えます。 test.shの中身は #!/bin/sh cd /var/www/html/test/ php -f daily.php > result exit になっています。 daily.phpが実行されないので、daily.phpに何かおかしなところがあるのかと思い daily.phpを直接ブラウザから起動してみたところ問題なく処理されました。 このような経緯でtest.shの中身が間違っていると思っているのですがどこが間違っているのか分かりません。 どなたかアドバイス頂けると助かります。

その他の回答 (1)

  • 回答No.2
  • yambejp
  • ベストアンサー率51% (3827/7415)

(1)time.shのloggerの記述を logger -t test $MESS としてタグを付加してください。-fは使い方がちがいます。 (2)syslog.confでmessagesへの出力からtestをはじきます /var/log/messagesの行の羅列に「;test」を付加 (3)syslog.confで、testタグのログファイルを指定します !test *.* /var/log/test.log (4)あとはsyslogを再起動、test.logはあらかじめtouchしておくように

共感・感謝の気持ちを伝えよう!

質問者からのお礼

出来ました!とても助かりました ありがとうございました!

関連するQ&A

  • cronがうまく動作していないっぽいです。

    Fedora8の環境でcronの設定をしましたが思い通りに動いていないみたいなので教えてください。 まず、cronの設定は crontab -l SHELL=/usr/bin/perl */5 * * * * root /var/www/cgi-bin/test.cgi です。 このtest.cgiは、コマンドラインで./test.cgiとすると同じディレクトリ内のファイルに動作した時間とその旨のログを追記します。 perlで書いてあり、現在の属性は755 ftpuser:ftpuserとなっています。 とりあえず5分間隔で動作するように設定したつもりです。 しかし、いくら待てどもそのログファイルに追記されません。 ちなみに、/var/log/cron には CROND[3511]: (root) CMD (root /var/www/cgi-bin/test.cgi) なカンジで5分ごとにログが出ています。また、5分毎にメールが来ていて(Cronデーモンから?) /var/www/cgi-bin/test.cgi syntax OK と記載されています。 test.cgiからログを吐かせるには何が必要かご教授願います。

  • crontab -e コマンドで編集してもCronが動作しません。

    testユーザーで手動でコマンド実行すると正常に動作するのですが、 crontab -eで、下記のようにCronを登録しても動作しません。。 00 12 * * * /var/www/html/bin/cron.sh args1 /var/log/cronを見ても Jun 19 12:00:01 web1 crond[3095]: (test) RELOAD (cron/test) というように、RELOAD となりまりコマンドが実行してくれません。。 Jun 19 13:01:01 web1 crond[9116]: (root) CMD (run-parts /etc/cron.hourly) というように、CMDが出ているのですが。。

  • cron設定で正常に動作しない

    Solaris8でcronの設定を行っております。 まず /var/spool/cron/crontabs/rootファイルに 30 6 * * * /usr/local/shells/rsync-docs_com.sh を追加しました。 cronのログを確認したところ以下のメッセージが表示されていましたが、実際に処理は動いてなさそうです。 > CMD: /usr/local/shells/rsync-docs_com.sh > root 22386 c (月) 10月 9 06:30:00 2006 < root 22386 c (月) 10月 9 06:30:00 2006 rc=1 スクリプトファイルは処理が実行されるとログを出力するように設定していますがログが出力されません。 # sh /usr/local/shells/rsync-docs_com.sh # で手動で実行すれば正常にログも出力されます。 ------------------------------------------------------------------------ #!/bin/sh LOG_DIR=/home1/WEB_BACKUP/rsync_logs DAYS=30 /usr/bin/find $LOG_DIR -name 'rsync_*.log' -mtime +$DAYS -exec /usr/bin/rm {} \; /usr/local/bin/rsync -av --delete rsync://WWW7/www7-doc /home1/WEB_BACKUP/ www/docs_com >$LOG_DIR/docs_com-`date +%m%d%H%M`.log 2>&1 ------------------------------------------------------------------------ 何が原因か分かりますでしょうか? よろしくお願い致します

  • syslog出力について

    solarisでperlでsyslogに出力するとき、メッセージIDとプライオリティを出力することができません。 loggerコマンドだと、 logger -p user.info -t UUU テストメッセージ を実行すると、syslogには、 Jan 7 18:37:25 HOST UUU: [ID 702911 user.info] テストメッセージ と出力されます。 しかし、次のperlプログラムを実行しても、 #!/bin/perl use Sys::Syslog qw(:DEFAULT setlogsock); setlogsock('inet'); openlog("UUU","cons",LOG_USER); syslog(LOG_INFO,"テストメッセージ"); closelog(); syslogには、 Jan 7 18:44:01 HOST UUU: テストメッセージ としか表示されません。 [ID 702911 user.info]を表示することはできないのでしょうか?

    • ベストアンサー
    • Perl
  • syslog-ngのdestination fileについて

    お世話になります。この度、御教授いただきたく書き込みさせていただきました。何卒宜しく御願いいたします。 ◆環境 ・CentOS(4.4)でsyslog-ng(1.6)を動作。 ・とある機器からsyslogを受信。 ◆症状 対象機器からのsyslog(514)を受け設定ファイルに指定しているdestination fileに保存は出来るのですが、書き込まれる際にファイルの権限が変更されてしまいます。 具体的には 1.destination file=taisho.log(644) ※taisho.log(644)ファイルはroot権限で作成。 2.対象機器からログを受信、syslog-ngによりtaisho.logファイルにログが書き込まれる。 3.書き込み成功。ただしファイル権限がtaisho.log(600)に変更。 上記症状はsyslog-ngのサービスを再起動するたびに起こります。 ※chmod 644 taisho.log で元に戻した場合、syslog-ngを再起動しない限り権限は"644"のままです。 お忙しいと思いますが、ご教授のほど宜しく御願いいたします。

  • コマンドの違いについて

    Solarisでシステムログのディレクトリ(/ver/log)にメッセージの書きこみを行いたいのですが、「logger」と「syslog」の使い分けがよくわかりません。 書きこむのはBシェルからです。 どちらを使うべきなのでしょうか? ユーザーはrootと同等の権限のユーザでと考えております。 また、システムログに書きこむにあたっての注意事項があればあわせてお願いします。

  • CronのログでのURLの半角スペースについて

    いつもお世話になります。 クーロンを動かした際のログに、 Mar 10 06:00:01 …(root) CMD (/usr/bin/php /var/www/html/….php) というように【/php】の後ろに半角スペースがついているのですがこの状態でも正しく動作するのでしょうか? クーロンが実際動作していない気がするため上司に意見を言おうと思うのですがこの質問自体が「半角スペース含んでも問題ない」ということだったら恥ずかしいので先に質問させて頂きました。 アドバイス頂けたら幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • cronの設定日時について

    現在、サーバー(centos5.6)の定期バックアップの設定をしている最中なのですが、コマンドが設定した日時に起動せず困っております。 ”毎月第一日曜”の02:00にバックアップスクリプトを起動させたいのですが、”毎週日曜”の02:00にバックアップスクリプトが起動します。 cronの設定は以下のとおりです。 #crontab -e 00 02 1-7 * 0 /root/scripts/backup_sda3.sh #cat /root/scripts/backup_sda3.sh #!/bin/bash DATE=`/bin/date +%Y%m%d` BACKUPFILE=/mnt/disk/sda3_$DATE dd if=/dev/sda3 of=$BACKUPFILE #cat /var/log/cron Feb 26 02:00:01 dns crond[31858]: (root) CMD (/root/scripts/backup_sda3.sh) 何か、お知恵をください。

  • apacheログのIPアドレス欄がIPv6になってしまいました

    初めまして。 自宅サーバでapacheを使っていて、アクセスログを久しぶりに見てみました。 すると、 初めのころは 66.249.66.204 - - [16/Sep/2006:13:51:27 +0900] "GET /pukiwiki-1.4.7.bak/index.php?cmd=diff&page=Fron tPage HTTP/1.1" 404 311 とIPv4で表示されていたログが、いつの間にか b874:6209:c875:6209:f074:6209:b893:fcbf - - [03/Feb/2007:12:47:07 +0900] "POST /gazou.php HTTP/1.0" 200 11655 のように、IPv6のような表示に変わってしまいました。 httpd.confを大きく変えた記憶は無いのですが。。 なにかアドバイス等、頂けないでしょうか? 以下はOSとapacheのバージョンです。 [root@DELL apache2]# uname -a Linux DELL 2.6.12-1.1381_FC3smp #1 SMP Fri Oct 21 04:03:26 EDT 2005 i686 i686 i386 GNU/Linux [root@DELL apache2]# /usr/local/apache2/bin/apachectl -v Server version: Apache/2.0.60-dev Server built: Nov 27 2006 20:49:13 よろしくお願いします。

  • fedora11でのcron設定

    fedora11,apache,php5の環境でcronを使いたいのですが、動きません。。 状況が、 fedora11 php5 apache を使用していて、cronを使ってphpの定期実行を行いたいのですが、どうしてもうまくいきません。 かなりググってはみたのですが、liuxについては初心者なので、どうにもわかりません。 設定内容が、 /etc/crontabが、 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ * /1 * * * * apache /usr/bin/php /var/www/html/cron.php で、/var/log/cron でログを確認したところ Jul 28 19:00:01 host CROND[8417]: (apache) CMD (/usr/bin/php /var/www/html/cron.php) となっていてこれが一分ごとに出てきます。 cron.phpにはファイル追記の処理を書いてあります。 エラーではないようなのですが、ファイル操作が行われていないようなので動いていないようなのです。 ローカルホストでphpを実行したらちゃんと動くのでphp内のミスではないようです。 パーミッション関係だったらログにエラーが出そうなものですし、、、。困っています。。 どなたかお知恵を貸していただけませんでしょうか、よろしくお願いします。