
Ubuntu日本語フォーラム

ログインしていません。
いつもお世話になっております。
SNMPDとMRTGを使って、CPU負荷、CPU温度などのサーバ稼働状況のグラフ表示をやろうとしています。
色々なサイトでたくさん情報が得られますので、ほぼうまく行って、グラフを含んだhtmlファイルの
自動生成、それをブラウザで正常に閲覧できることまでは確認出来ました。
MRTGには、グラフのhtmlファイルが監視対象毎に複数出来てしまうので、それらをひとつにまとめた
index.htmlを生成する「indexmaker」というコマンドが備わっています。
こちらで質問させていただきたいのは、この「indexmaker」についてです。
sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
bash: /var/www/mrtg/index.html: Permission denied
このように、indexmakerを実行したところ、生成されるべき index.html がPermission deniedとなり
生成することが出来ません。「sudo」で実行しているにも関わらず、Permission deniedが出てしまい
対応に苦慮しております。「index.html」という名前がよくないのかと思い「index1.html」などとやって
みましたが同じ結果でした。
Ubuntuのバージョンは、9.04です。
解決策を教えて頂けますと幸です。
オフライン
とりあえずrootで試す前に、まずは、アクセス権がどうなっているのか、確認してみると良いかと思います。これにより、原因の予想が違うのか、手段が違うのか、切り分けられます(失敗して再試行するとき、切り分けてあると楽です)
$ ls -ld /var/www/mrtg/index.html
そのうえで、rootにより実行することで解決する場合には、
$ sudo "indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html"
と、指定する必要があるのではないかと思うところです。
# sudoの引数全体に「""」をつけないと、リダイレクトは、現シェルで処理されて「sudo indexmaker /etc/mrtg.cfg」がコマンドとして実行されることになる・・・・・と思います(rootで生成したファイル内容を、現在のユーザでファイルに書き込んでいる と)
オフライン
uchan21 による投稿:
sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
思いっきりバッドノウハウですが、パーミッションがないファイルに結果を出力する場合には
sudo indexmaker /etc/mrtg.cfg | sudo tee /var/www/mrtg/index.html
という具合で、パイプとteeコマンドをうまく活用すると良いかと。
オフライン
weyk様、n_saito様 ご回答ありがとうございます。
結論から申しますと、n_saito様からいただきました方法で解決しました。
n_saito による投稿:
思いっきりバッドノウハウですが、パーミッションがないファイルに結果を出力する場合には
sudo indexmaker /etc/mrtg.cfg | sudo tee /var/www/mrtg/index.html
という具合で、パイプとteeコマンドをうまく活用すると良いかと。
weyk様からいただきました方法ですが、そもそも、index.htmlが存在しないことから、いきなり実行したところ、
sudo "indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html"
sudo: indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html: command not found
となってしまいました。
ちょっと意味があるか分かりませんが、出来たindex.htmlについて、ls -ld /var/www/mrtg/index.html を実行したところ、
-rw-r--r-- 1 root root 3221 2009-07-01 21:18 /var/www/mrtg/index.html
となりました。
ありがとうございました。
オフライン