• ベストアンサー

コマンドの違いについて

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

  • kiyoto
  • お礼率79% (163/205)

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

  • ベストアンサー
回答No.1

シェル上で使うのであれば、「logger」はコマンドであるのでそのまま使えますが、「syslog」はOSのシステムコールなので(シェルからは)直接使えません。 solarisで用意されているコマンドはよく知らないのですが、solarisでは「syslog」コマンドが用意されているという話であれば、ちょっと私にはわかりません。 ただ、「logger」を使ったほうがそのシェルの移植性は高くなると思います。

kiyoto
質問者

お礼

回答有難うございます。 loggerで検討させていただきます。

関連するQ&A

  • loggerコマンドでkern.warningを出力させたい

    loggerコマンドでkern.warningを出力させたい Solaris8,9で、/etc/syslog.conf には、 *.err;kern.warning /var/adm/messages などと設定しました。 kern.warningを追記したので設定を確認しようと rootにて logger -p kern.warning "TEST" を 実行しても出力されません。 logger -p kern.error "TEST" とすると、 Jun 15 13:50:45 host foo: [ID 702911 user.error] TEST となって、facilityがuserになってしまうようです。 kern.warningをloggerコマンドで出力する方法をご存知ないでしょうか。

  • 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
  • rootにpathを通す方法

    こんにちは、kaituyoと申します。 Solaris8でのpathの通し方の質問です。一般ユーザーの場合ですとHOMEディレクトリの中の「.cshrc」ファイルにpathを書きこみシェルを再実行させればコマンドが使えるようになりました。しかし、rootでログインすると使えません。それで、rootにもpathを通そうかしたら「.cshrc」が見つかりません。  rootでpathを通してコマンドを実行できるようにはどうしたらいいのでしょうか? よろしくお願いします。

  • 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"のままです。 お忙しいと思いますが、ご教授のほど宜しく御願いいたします。

  • php実行権限以外でのディレクトリ(ファイル)作成方法

    webからphpを起動し、ディレクトリを作る場合、 phpが実行された権限ではない権限で作ることはできますか? 所有者がapacheとなるディレクトリを作りたいのです。 試してみたこと。 ・mkdirでディレクトリ作成後、chownで所有者変更が出来ればいいのですが、 root権限で動いているわけではないので無理でした。 ・シェルを作って、シェルの所有者をapacheにしてphpからコマンドラインで シェルを呼び出してみましたが所有者apacheで作られません。

    • ベストアンサー
    • PHP
  • loggerを使用し、ログを管理したいのですが・・

    前回、いくつかのプログラム(約50本)で1つのログファイルを使用し、ログを管理したい という質問をさせていただき、リダイレクトでログを出力する場合、同時に同じ ファイルへ書き込みに行くと、書込みが保障されないためRDBMSを使用してログを 管理したほうが良いという回答をいただきました。 ただ現状開発がほぼ終わっている段階のため、RDBMSを使用してログを管理する 方式は、選択しづらい状況です。(最終的にRDBMSを使用するしかない場合は、 RDBMSを使用します。前回回答を下さった方々には本当に申し訳ないと思っています。) そこでloggerコマンドを使用して、syslogにログを出力し、ログを管理したいと考えています。 loggerコマンドでsyslogに出力する場合、同時にファイルに書込みにいった場合、自動的に 書き込むファイルを振り分けてくれるようなので。(確証はもてておりません。) そこで質問のなのですが、本当にloggerコマンドで同時にファイルに書込みにいった場合、 自動的に書き込むファイルを振り分けてくれるのでしょうか? また、今回syslogには、プライオリティ(重要度)(INFO、WARNING、ERROR等)に関係なく 全てのログを出力しようと考えています。プライオリティがINFOの情報は、「○○処理開始」 レベルのログとなっています。(今回出力しようとするログの95%以上は、プライオリティがINFO の情報となります。)一般的に運用する場合、syslogにプライオリティがINFOの情報は出力 するものなのでしょうか? 申し訳ありませんが有識者の方ご教授ください。 (特に2つ目の質問はあいまいでわかりづらい質問ですみません。)

  • linux権限について

    CentOS5系を使用しています。 あるディレクトリ(下記のような権限を持つディレクトリ) の配下でのみrootと同様の権限を持つユーザを作成したいと思っています。 drwxr-xr-x 15 root root ディレクトリ名⇒Hoge グループの権限はrwxにしても良いと考えていますが、 useraddで新規ユーザを作成して usermod -Gでrootグループにユーザを追加してしまうと そのユーザは他のディレクトリでもrootと同様の権限を持てることとなってしまいます。 あくまでHogeディレクトリ配下でのみrootユーザと同様の権限を持たせたいと思っています。 どなたか知恵をお貸しください。

  • linuxのログってunixのログと格納場所がちがうのですか?

    linuxについて全く知識がないのでどなたか教えていただけると幸いです solarisではログはvar/adm、var/logなんかにログが吐き出されていくと思います。 それがlinuxではvar/logというディレクトリしかなくて、全てそこに吐き出されると聞きました var/adm/syslogやvar/adm/messagesやvar/adm/sulogなんかも全てvar/log配下に入ってしまうんでしょうか? 宜しくお願い致します

  • ログ管理

    ftpサーバーのログファイルにログが記載されないトラブルにみまわれております。 /etc/xinetd.d/vsftpd は、 service ftp { ... log_type = SYSLOG local3 ... } と設定しまして、 /etc/syslog.conf には、 ... local3.* /var/log/ftpd.log ... と設定し、 /var/log ディレクトリに、アクセス制限が644の所有者及びグループがrootのファイル ftpd.log を作成しました。 以下の設定で、デーモンとシステムログを以下のように再起動させました。 #service xinetd reload #service syslog reload これで、ftpサーバーにアクセスしたら、/var/log/ftpd.log にログが残ると思ったのですが、ログが記録されません。 上記の手順では不備があるのでしょうか。 問題解決の答えないしヒントを教えてください。

  • sudoの設定方法について

    こちらで質問させて頂きながらシェルスクリプトの勉強をしています。 sudoの記載について、いろいろと試したのですがうまくいきません。 アドバイスお願いいたします。 ◆やりたい事 ・非ルートでログイン時、Shell.shをroot権限で実行したい ・Shell.shからは、他シェルスクリプトが呼ばれる  ※他シェルスクリプトもroot権限が必要 ◆現状 ・sudoers ファイルに  user1 ALL=(ALL) ALL  と記載するとうまくいくが、  user1 ALL=(ALL) /フルパス/Shell.sh  とすると権限がないと言われる ◆質問  Shell.shがroot権限で実行できれば、Shell.shから呼ばれるシェルスクリプトも  root権限になる認識なのですが、間違っているのでしょうか?