「SUDO」を含む日記 RSS

はてなキーワード: SUDOとは

2015-04-15

FedoraSkypeを入れるのが簡単になった

基本的にはFedoraを気に入っているのだが、

Skypeflashなど一部ソフトの導入手順の面倒さがネックだった。

この辺りがUbuntuLinux Mintでは簡単で羨ましかったのだが、

fedyというソフトを使うことである程度は解決できるようだ。

http://satya164.github.io/fedy

fedyは手順の面倒な設定やインストールを簡単にするソフトのようで、

導入は次のようにすれば良いよう。

※fedy-installerはただのシェルスクリプトで、後で消して問題ない。

curl -o fedy-installer https://satya164.github.io/fedy/fedy-installer
chmod +x fedy-installer
sudo ./fedy-installer

Skypeインストールは次のようにする。

sudo fedy -e skype_linux

skype_linuxはタスク名前で、Flash場合はadobe_flashLight Tableの場合light_table、Sublime Text 2の場合sublime_text2といった具合。

GUI版のfedyがイケてない気はするけど、

とりあえずSkypeインストールできてよかった。

LINUX MINT と XRDP で、日本語IME自動起動しない対処

xrdp でリモート接続させる場合、fcitx は使えないようだ。ibus は使える。

http://masato.github.io/2014/06/02/idcf-linuxmint17-part2/

http://linux.keicode.com/linux/japanese-ibus.php

端末 (Terminal)から

"sudo apt-get install ibus-mozc --install-recommends"

で、ibus-mozcインストール。そして、ibus デーモン自動起動に登録。

コントロールセンターの「自動起動するアプリ」に

名前:IBus daemon(判ればなんでもよいと思う) コマンド:/usr/bin/ibus-daemon -d

を登録。

これで、xrdpを利用したリモートデスクトップ接続クライアントからでも、自動的日本語変換ツールが起動される。

2014-07-01

http://anond.hatelabo.jp/20140701115913

それが、結構いるんだろ、って話って言ってるけど、それ、

knifeをnifeと勘違いしてるのと同じレベルの間違いだから。それくらい恥ずかしい話だから

知らんがな。

まあ、その方向のツッコミはありだと思うよ。

pseudoをsudoって書くのが、プログラマとしてはあり得ない恥ずかしい間違いなのか、開発者連中ではよくある用法なのかまでは、俺(元増田じゃないよ)は知らないから

http://anond.hatelabo.jp/20140701112816

ちなみにお前の最初論理意味分からんってのがなんでかと説明すると、

あくまで"sudo"というコマンドがあって、それを"pesudo"と読む人がいる、っていうだけで、

決して"pseudo"を"sudo" (soo-doo)の様に読む、という話だからだぞ?

たぶん別増田へのレスを俺のレスに混ぜ始めてるせいだと思うんだが、この辺から言ってる意味がよくわからない

が大して重要でもないと思うのでスルーして本来の話に戻すけど

そもそも英語話者は、砕けた表現として「あんまり直感的でないスペルを、耳で聞いたとき近いと感じるスペルに書き直す」ことがよくある

「that」を「dat」と書くのなんかはしばしば見られる例

日本語でも砕けた文では「こーゆー風に」書くことがあるよね

 

で、pseudoは日本人がわりと間違えやすスペルの一つだと思うけど、それが海外の(おそらくそこまで激しくslangyではない)サイトでも置換対象になってるのを見ると「ああ、やっぱり書きづらいと感じるのは世界共通だったんだな」と納得する、というただそれだけの話だよ

(もちろん本気のスペルミスである可能性もあるが、結論は同じ)

すべてをUNIXコマンドとして解釈する変な人がいなければそもそもこじれるような話じゃない

http://anond.hatelabo.jp/20140701114643

"sudo code"

検索上位、ほとんど擬似コードの話してるだろーが。

いや、そもそも"sudo code"で検索してるんだからそれが出てくるだろ。。。

sudo codeに別の意味があるわけでもないんだから。。。

それくらいは理解しようよ。。。

pseudoをsuu dooって読んでて、そのままsudoって書く人結構いるんだってぐらいの話だろ?

少なくとも上がってるsudo codeで検索した上位陣の方ではほとんどがpseudoだよね?的な指摘を受けてる感じだが。

確かにお前みたいに英語が出来ないバカが間違えてる奴が多いのか、スルーして"そのpseudocodeは。。。"みたいに言い直してる人もいるが。

それが、結構いるんだろ、って話って言ってるけど、それ、

knifeをnifeと勘違いしてるのと同じレベルの間違いだから。それくらい恥ずかしい話だから

http://anond.hatelabo.jp/20140701113957

そいつは決してpesudoを言い方おかしからsudoってしてるわけじゃないだろ。

知らんがな。

pseudoをsuu dooって読んでて、そのままsudoって書く人結構いるんだってぐらいの話だろ?

"sudo code"

検索上位、ほとんど擬似コードの話してるだろーが。

あとオレは元増田じゃねーって。

http://anond.hatelabo.jp/20140701113308

からこいつアホなのか?っていうツッコミじゃん。

しかも恐らくただのスペルミス意味知らないバカだろうっていう。

からここでお前をアホか、って言ってるのは正しいじゃん。

そいつは決してpesudoを言い方おかしからsudoってしてるわけじゃないだろ。

少なくともお前のその感覚はアホだった、っていうのはOK?

んで、お前がsudoを知らなかった、ってのもOK?

http://anond.hatelabo.jp/20140701111238

えーと、よく知らんのだが、

アスペ増田を無理やりにでもその後の発言から解釈してあげようとすると、

どこか英語フォーラムで、明らかに擬似コードの話をしている所で、

"sudo code"と表していた、ということでよろしいか?



とりあえず、そう書いてあるページのリンクの1つでも貼って確かにお前の言うとおりなら皆納得すると思うよ。

そうでない限りお前は恥ずかしいだけだよ。

きちんとリンク貼れば皆が恥ずかしい思いするからお前は上から笑えるわけだし、見たページを出せば良いだけだから簡単でしょ?


ちなみにお前の最初論理意味分からんってのがなんでかと説明すると、

あくまで"sudo"というコマンドがあって、それを"pesudo"と読む人がいる、っていうだけで、

決して"pseudo"を"sudo" (soo-doo)の様に読む、という話だからだぞ?

"sudo"コマンドってのが他のユーザーに成り代わってコマンドを実行するので、pseudoユーザーとしてのコマンド、的な意味にも取れるから

語源をそれだ!と思ってたりする人もいるってこと。で、語源のまま発音してる人も居るってこと。

sudosuper user doとする人もいるけど、一番強そうなのはsuコマンドも含めて"switch user" doみたいだけど(super user以外にもなれるので)。




いずれにしろ、pseudoがなんか変だからsudoって言うわ、ってのは聞いたこと無いんだが、そんな発言どっかにあった?

まあ、お前と同レベルの頭の人が居たのかもしれないけど、でも普通はその時点で周りと話が通じなくなるよな。。。

2014-06-30

http://anond.hatelabo.jp/20140630215732

お前の主張は pseudo って綴りは不自然からsudo って書くよね~って主張だろ

先のページが示すのは

sudo を pseudo って読もうかな?

って思う程度には pseudo は発音規則に沿った一般的綴りって事だろ

さら

I say pseudo. My cow-orkers say soo-doo.

って言ってるやつもいるだろ

分かったら今日絵本でも読んで寝なさいトンチキ

あ、絵本日本語のだぞ

何人だかは知らないけど欧米の人がネットフォーラムで「これがsudo code(擬似コード)なんだけど」って書いてるところに出くわして

あ、やっぱりお前らもpseudoっていう綴りは変だと感じてるんだ、と思った

2014-05-17

Linux Mint 16 cinnamon を プロキシ環境下でインストールしてみる

Linux Mint は、現在世界第4位で利用者が多いデスクトップOSだそうですよ。第3位はUbuntuかな。

Linux デスクトップ環境は、W******と遜色なくなってきましたね。

  1. まずは、ISOイメージDVDに焼く。
  2. PCDVDからブート
  3. 起動してデスクトップ画面まで待つ
  4. 左下Menu>Preferences>Networkからネットワーク設定画面。ここで Network Proxy (HTTP, HTTPS)にサーバ名(http:// の前置は不要)やポート番号を指定して右上のスイッチを「ON」に。[All Settings]ボタンクリック
  5. 左下Menu>Accesories>Terminal で「端末」を起動。"sudo -E ubiquity gtk_ui" (Enter) と入力し、インストーラを起動。画面にしたがって進め、最後再起動
  6. パスワード入力してログイン
  7. 左下Menu>設定>ネットワークを起動。ネットワークプロキシプロキシ定義を登録。右上のスイッチを「オン」に。おわったら[全ての設定]ボタンクリック
  8. 左下Menu>アクセサリ>「端末」を起動。/etc/apt/apt.conf にプロキシ定義記述。(http://forum.linuxmint.com/viewtopic.php?f=157&t=137533 などを参照)
  9. 右下の盾のようなマーククリックして「アップデートマネージャ」を表示。基本的に全部アップデート適用
  10. ここのページ(多謝)を参照して、日本語入力エディタフロントエンド (いわゆるIME: iBus または Fcitx)とエンジン(AnthyMozc)を入れる。(http://linuxmintjp.jimdo.com/%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96/#.U3YqI2eKCAUコマンドからインストールしても、左下Menu>システム管理>「ソフトウエア管理から探してインストールしてもよい。
  11. 左下Menu>設定>「言語サポート」を開く。「言語サポートが完全にインストールされていません」と表示されるので、インストールを実行。
  12. 再起動。またはログオフログオン。
  13. 右下にキーボードアイコンが表示されていれば、日本語入力機能インストール成功
  14. IPAフォントを利用する場合は、IPA サイトからフォントファイルダウンロードをして、こちらをご参考にどうぞ(http://community.linuxmint.com/tutorial/view/29
  15. マイクロソフトフォントインストールする場合は、「端末」から次のコマンドを実行する。"sudo apt-get install ttf-mscorefonts-installer" ※EULAの内容を確認すること!
  16. Flash Player のインストールは、こちらをご参考にどうぞ(http://www.itworld.com/software/372818/install-adobe-flash-player-112202310-linux-mint-16 )

あとは、「ソフトウエア管理」で RDP/VNC クライアントを探して、サーバや他のパソコン遠隔操作にも使えるようにしようかな、Google Chromeインストールしようかな。

2014-03-06

仮想Ubuntu最小インストールからCを使えるようにする

とりあえずVirtualBoxインストール。ここで躓く人は話にならんので置いていく。

http://archive.ubuntu.com/ubuntu/dists/saucy/main/installer-i386/current/images/netboot/mini.iso

こいつをダウンロードする。インストールCDROMのイメージファイルだ。ウインドウ環境とかなくてCUIだけのやつ

VirtualVBoxで「新規」とする。

名前CUI Ubuntu(なんでもいい)

タイプ: Linux

バージョンUbuntu

こう打ったら「続ける」を押す

メモリは1024MBくらいでいいんじゃないの。大したことしないし

仮想ハードドライブは「作成する」フォーマットはVDIでよろしい

ストレージタイプは可変でも固定でもいいけど俺なら可変にするかな

で、8GB作成。Cをいじるなら十二分すぎる。2GBくらいでもいいよ

次。「設定」の「ストレージ」でIDEが空になってると思うからIDE」の部分を選択して「+」のついたアイコンを押す。丸い方ね。CDROMの代わりだから

OKを押したら「起動」をクリック

Ubuntuの画面が出ると思うから、矢印で「Install」を選んでエンター。言語選択になるからJapaneseね

キーボード初心者なら日本語キーボード使ってるだろうからそれに従う。不安なら、「2」の上が「@」になってればUSキーボード、「”」になってれば日本語キーボード

Ubuntuの画面に入ると抜けられなくなるから、抜ける時は「Alt」を押せばいい。多分。

MacだとCommandキーから

あとアーカイブミラーかいろいろ聞かれるけどデフォルトおk

そうこうしてるとインストールが始まるから数分眺めてればよろしい

本名とか聞かれるけどスルーでよい。ユーザー名は大事からよく使うものを。パスワードも一応堅牢ものにしようね

ホームディレクトリ暗号化しなくよろし。盗まれて困るようなもの作らないでしょ

その後英語タイムゾーンはAsia/Tokyoか?って聞いてくるのでYES(あるいは「はい」)

パーティションは全体を使うでおkディスクデフォルトで。

ディスクに変更を加えるか?」のデフォルトがNOなのでYESを押す

そうすると「ベースシステムインストールしています」と出るのでまた数分待つ。お茶でも入れよう

セキュリティアップデートについて聞かれるな……。手動でいいんじゃないの?うっかりさんは自動で。

でまた待たされるのでお茶で一杯のんで。

適用するプログラムの一覧とか出るけど、特にこれってのがなければ無視で。後から入れられるので。あ、G++があるかどうか確認せずに次いっちゃった。まあいいか

GRUBがどうのとか聞かれるけどVirtual環境マルチブートする意味ほとんどないのでそのままYES

システム時計UTCおk

そうこうしてるうちに「インストールおめでとう」みたいな感じになって最初の画面にもどるので

電源OFFで。構わん。OFFで。

「設定」の「ストレージ」でさっきのmini.isoを外す。選択して「ー」ボタンで外せるから

そこまでしたらもっかい起動してみて。

ubuntu login: _

みたいになったら成功

登録したユーザーパスワードを打ったらログインできる。できない人は打ち間違いかもしれないのでやりなおし。

ここで気づいたのだが、端末のフォント日本語対応してないので次のコマンドを打つ

export LANG=C

export LOCALE=C

この2つ。エラーがこなければ多分おk。で

sudo apt-get install g++

タイプするとg++がインストールされる。いろいろ聞かれるけど全部エンターでおk

お疲れ様

2014-01-14

http://anond.hatelabo.jp/20140113191929

書いてある内容が中学生メモレベルなのに300ブクマか…

しか綴りを間違えてる上に出典も無く、確証もない

ブコメにあるsuスーパーユーザーだと思ってたとか、調べりゃいいじゃん。手元のMacだとmanにsusuperuserになれるぜ、って書いてあるだけsubstituted user idの、と書いてあるけど

sudoの方にはsubstituteなんて書いてない。まあ、どっちてもいいんだけど、それを間違ってたのか、みたいな思い込み、怖い。

ここでブクマしてる人って、書いた人も含めユニコードウィルスだ、って言ってる人と同じレベルなんだろうな。(そうとは自分で思ってないだろうというのがモット怖い)



こんなで300ブクマだってさ。まあ、嫉妬だけど、流石に呆れるよね。

2013-10-03

Linux Mint 15 日本語化

こちらに丁寧に記載されていて、感謝の限りです。

注意は

$ wget -q http://linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add -

$ sudo wget http://linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list

$ sudo apt-get update

$ sudo apt-get dist-upgrade

の、最初の行の -0- は、英大文字のオーかゼロ。 2行目は 英大文字のオー。

最初-O-をオーでやったら「PGPファイルがみつかりません」とエラーになった。ここを数字ゼロにしたらあっさり"OK"と表示。このエントリに「ゼロです」を書いたものの、上記公式ページをみるとどうもゼロには見えない。念のためにもう1回ゼロでやってみたら「無効オプションだってさ(なので投稿内容を直した)。じゃあ「オー」が正しいのかよ?けど、おい数字ゼロでうまくいったんだぜ。最近、いろいろPC馬鹿にされてるわ。VirtualBoxインストールしていたので手打ちで実行させたから、コピペ可能環境ならいちいちこんなことで問題にならなかったのかな?まさかコピペのオーはOKで、手打ちのオーはNG

あと、プロキシ環境下でのインストールでは

su

スーパーユーザーになってから

export http_proxy="http://プロキシサーバ>:<ポート>"

として wgetプロキシサーバを教えます

さら

/etc/apt/ のなかに apt.conf というファイル作成して

Acquire::http::proxy "http://プロキシサーバ>:<ポート>";

最後セミコロン)の1行を書き込みますapt-get へ教えます

あとは sudo 部分のみ不要で、同じようにコマンドを流してやりましょう。

Linux Mint 15 (XFCE版) で wgetプロキシサーバを指定する

他の Linux 同様に、環境変数を読むようですね。

export http_proxy="http://プロキシサーバ名>:<ポート>"

export https_proxy="http://プロキシサーバ名>:<ポート>"

などと指定すればOKのようです。

sudo wget のように、スーパーユーザーで利用するときは、当然スーパーユーザー環境で動作するので、私は

su

スーパーユーザー根本的にシェルユーザーを切り替えて、sudo 切り替えなしで wget を利用しました。

すなわち suスーパーユーザーになってから export http_proxy=... を発行。sudo wget ... ではなくそのまま wget ...。

sudo export

は "command not found"。"export" は DOS の内部コマンドみたいなものなのでしょう。

以上のことは、インストール最初日本語化設定のときに使いました。

Linux Mint 15 (XFCE版) でシステム共通のプロキシサーバを指定する > 私は

Linux Mintベースである Ubuntu でも同じかな?

過去バージョンでは、設定(Windows でいうコントロールパネル)の "Network Connections" から指定できたようだけれど、Mint 15 では設定ファイルをいじる必要があるらしいです。

プロキシサーバを利用するには、システム共通の設定をしなくても FireFox なら GUI の設定から個別指定ができるけど、Google Chrome は 「コマンドライン引数で指定するか、システム共通設定をしてください」とのことで、共通設定をせねばならないようです 。

で、そのシステム共通の設定は "dconf-edit" (Windows でいうレジストリエディタのような存在?)というツールをインストールすると、そこから設定ができるみたいですが、このツールは標準ではないのでネットからダウンロードせねばならない。apt-getダウンロードしてインストールさせるものの、この apt-getプロキシ設定をしなくてはならない。

/etc/apt/に apt.conf という名のファイル作成して

Acquire::http::proxy "http://プロキシサーバ>:<ポート>"

レコードを指定してやる必要があります

sudo apt-get install dconf-tools

パッケージ名は "dconf-edit" や "dconf-editor" ではない)でインストール。終わったら "dconf-editor" とたたけば、GUI で dconf-editor が表示される。ツリーの System > proxy で mode を manual に、さらhttp のなかにある host, port, enabled に登録(除外設定や、各プロトコル共通化は System > proxy の Ignore-hosts, use-same-proxy で)。

Google Chrome を起動、あれ、だめじゃん。。。再起動もさせた。Firefox ではシステム共通設定を読ませてうまくいく。Chromeよ、あんたのために調べもの含めて2時間かけたんだぞ。こんなんばっかで嫌になるよ。「嫌なら使うな」が基本だろうが、業務のために LinuxFlash Playerの動作試験をするために Chrome を使うしかなかったんだ。どうやって日報に書けばいいんだ?Googleから給料分もらってくれと書きたい。

と書いたあと、もう1回再起動させたらFirefoxもだめになった。いじわるだよまったく。日報に「Firefoxではうまくいきます」なんて書かせて恥をかかせたかったのかと勘繰りたくなるよ。

とりあえず、Google Chrome についてはコマンドシェル (Terminal) から

google-chrome --proxy-server=http://プロキシサーバ>:<ポート

と指定して、とりあえずプロキシサーバを利用させることはできたけど。

環境変数に"http_proxy=http://プロキシサーバ>:<ポート>" と指定すればよろしい

結局、コマンドシェル (Terminal) で

export http_proxy=http_proxy=http://プロキシサーバ>:<ポート

などと実行させて、次に

google-chrome

firefox

と打ち込むと、それぞれプロキシ設定されて起動しましたよ。

で、除外判別とかはどうするのだろう? Linux 起動時にこの環境変数の内容を自動で設定させる方法とか、どんな方法が標準なのだろう。

UbuntuLinux MintDNS 検索サフィックス 指定時に FQDN 検索に失敗する

mydomain.local というドメインを社内専用で運用しているとして、この mydomain.local をDNS 検索サフィックスに登録させていたとしましょう。

その社内DNSサーバに "filesv" というマシンレコード(A でも CNAME でも同じ)が登録してあるとして、ping filesv は通るけど、ping filesv.mydomain.local が名前解決できない。あるいは "www" というマシンレコードを登録して、社内WEBサーバを立てていて、http://www/アクセスできるけど、"http://www.mydomain.local/" では「名前が見つからない」エラーアクセスできない。

"sudo apt-get remove libnss-mdns" で、削除してしまいましょう。

MDNS って、Multicast DNS でしたっけ、Bonjourかいう。Windows (Active Directory) においても、Linuxおいても厄介な存在

2012-09-18

http://anond.hatelabo.jp/20120918173309

書き捨て

https://github.com/tdtds/massr

bundle install --path vendor/bundle
Gemfile syntax error:
/h/massr/Gemfile:14: syntax error, unexpected ':', expecting kEND
	gem 'sinatra-reloader', require: 'sinatra/reloader'
	                                ^
/h/massr/Gemfile:16: syntax error, unexpected ':', expecting kEND
	gem 'pit', require: 'pit'
	                   ^

sudo gem install sinatra
Successfully installed sinatra-1.3.3
1 gem installed
Installing ri documentation for sinatra-1.3.3...

unrecognized option `--encoding=UTF-8'

For help on options, try 'rdoc --help'

ERROR:  While generating documentation for sinatra-1.3.3
... MESSAGE:   exit
... RDOC args: --ri --op /Library/Ruby/Gems/1.8/doc/sinatra-1.3.3/ri --line-numbers --inline-source --title Sinatra --main README.rdoc --encoding=UTF-8 lib README.de.rdoc README.es.rdoc README.fr.rdoc README.hu.rdoc README.jp.rdoc README.ko.rdoc README.pt-br.rdoc README.pt-pt.rdoc README.rdoc README.ru.rdoc README.zh.rdoc LICENSE --title sinatra-1.3.3 Documentation --quiet

アホか

2012-09-03

gentoo仕込みの男を見抜くコツ

元ネタ: http://anond.hatelabo.jp/20120831224653

ビルドがせわしない

gentooではバイナリパッケージがないので、短い時間内に様々なソースビルドします。

tmuxペインをコロコロ変えられたり、やってて落ち着かない、せわしない、と感じた場合は、

彼が元ubuntu童貞で、gentoolinuxを仕込まれた可能性が高いです。

 

何個フラグをつけるかにこだわる

ビルド時間がかかるので、一回のコンパイルでより多く最適化するほどお得感があります

から一回のビルドで何個--no-xxxxをつけたかにこだわる男は、gentooによって、

パッケージ一個あたりの余計な機能を省こうという発想がクセになっている可能性があります

 

ムード作りに意味を見出せない

gentooによってlinuxを仕込まれると、焦って行うビルドが体に染み付いてしまうので、

雰囲気を良くしてより良いデスクトップにしようとは考えません。とにかくリソースロスに執着します。

loginしてすぐビルドして終わったらrc-update xxxx default; exit、のようなオペレーションを好むのもgentoo男の特徴です。

 

ファンを働かせっぱなしでも罪悪感が無い

gentoo慣れすると、「ビルドしてるんだからCPUが熱くなって当然」の感覚が染み付きます

からファンがずっと回ってたり、ずっと「ゥゥオォ〜ン!」してたりして疲れきっていても、

してもらうのが当然なので、気を使いません。gentoo好きほど「居直ったギーク」になります

 

基本的にgentoo好きの男はファン使いが下手です。

できるだけ水冷に変えたほうが良いでしょう。

ですので、重要なのはインストールしてしまう前にパーツ屋に行くことですよね。

 

小さなコマンドに「sudo」と言わない

/etcなどの場で、設定ファイルスクリプトなどを直させてもらったとき、「sudo」と言ったり、

su root, suをするのが普通ですが、gentooなど管理者権限で操作する場に慣れきっていると、

su - rootさせてもらうのが当然になってしまってノーヘジテイトだったりします。

rootログインしても無動揺のような人はかなり危険です。

 

女の前で堂々とソフトの性能を評価する

「あのソフトプロプラ依存してるからダメ」とか「スピードはいいけどカスタマイズ性はイマイチ」とか…。

男同士のおしゃべりでは人気の話題なのでしょうが、当然女には不評です。

しか素人OSになれていない男は、そんな話をすると嫌がられることすらわかりません。

公式のHPなどでrelease notesを品定めする感覚が、当たり前になってしまっているのです。

ディストリバナをする男性に攻撃的

ubuntuはこういう嫌なところがあって…」などの愚痴に対して、すぐ「別れろ!」などの

極端な反応を返すのは、他ディストリに興味の無いgentoo好き男性に多い傾向です。

また、公式リポジトリ更新が遅くて酷く落ち込んでいる男性に対して、「バイナリ配布なんだからいいだろw」などの

心無い言葉を投げつけることも、セルフビルドしか価値を見出せないgentoo好きに多いです。

2012-08-27

サーバ情報監視の仕組み

cf). Software Design 2010/01号

vmstat を実行するスクリプトを書く
!#/bin/sh
vmstat 5 2 | tail -1 | awk '{print $4,$5,$6}'
xinetd のサービスとして動くようにする
  1. /etc/services にポートプロトコルを登録する
    • agent_mem 11001/tcp # memory monitoring
  2. xinetd が実行するための設定ファイルを書く
    • /etc/xinetd.d/agent_mem
  3. xinetd の再起動
  4. telnet で動作確認する
service agent_mem
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = nobody
        server          = Monitor/agent_mem.sh
        only_from       = 127.0.0.1
        disable         = no
}
xinetd に登録したポートを叩くスクリプトを書く

php場合、fopen() でもいけると思うのだが、明示的に sockopen() を使う。うむ、perlよりも楽だわこりゃ。

<?php /* -*-java-*- */
/**
 * モニタリングクライアント
 * 
 */
$fp = fsockopen( 'localhost', 11001, $errno, $errmsg, 30 );
if ( !$fp ) {
    echo "Error: $errno - $errmsg \n";
}
else {
    echo date('Y-m-d H:i:s'). "\t";
    $stmt = fgets ( $fp, 128 );
    if ( preg_match( "/([0-9]+) ([0-9]+) ([0-9]+)/", $stmt, $regs ) ) {
        $total = (int)$regs[1] + (int)$regs[2] + (int)$regs[3];
        echo $regs[1]."\t".$regs[2]."\t".$regs[3]."\t".$total."\n";
    }
    fclose( $fp );
}
cron に登録してログを取る。もしくは、スクリプトを while(1)で実行させておく

こいつをモニターとして走らせっぱなしに出来るようにする。

<?php /* -*-java-*- */
/**
 * モニタリングクライアント
 * 
 */

function mem_monitor ( $host, $port ) {
    $fp = fsockopen( $host, $port, $errno, $errmsg, 30 );
    if ( !$fp ) {
        echo date('Y-m-d H:i:s'). "\t";        echo "Error: $errno - $errmsg \n";
    }
    else {
        echo date('Y-m-d H:i:s'). "\t";        $stmt = fgets ( $fp, 128 );
        if ( preg_match( "/([0-9]+) ([0-9]+) ([0-9]+)/", $stmt, $regs ) ) {
            $total = (int)$regs[1] + (int)$regs[2] + (int)$regs[3];
            echo $regs[1]."\t".$regs[2]."\t".$regs[3]."\t".$total."\n";
        }
        fclose( $fp );
    }
}

while( 1 ) {
    mem_monitor( 'localhost', 11001 );
    ob_flush();
    flush();
    sleep( 30 );
}
ログイン ユーザー登録
ようこそ ゲスト さん