2009年12月20日日曜日

つまりはメモ代わりってことだろ?

どうも、食べる方の鯖も好きですが、コンピュータの鯖もそれなりに面白いと思っているQです、こんちには。

というわけで鯖構築とかちょっとメモ。最近メモばかり書いてますが要するに、まあ書いた方が良いという自分の中での需要があるから書いているわけです。



①emacs設定

CentOS,emacs 21
ホームディレクトリの.emacs内に書く。

(setq transient-mark-mode t)
範囲指定で色づけ

(global-set-key "\C-h" 'delete-backward-char)
backspaceキーをbackspaceキーとして使う。ものによると思うが、自分のPCは\C-hとして認識されていた。

(global-font-lock-mode t)
プログラムを書くときに色をつける。(バージョン22は不要)



②useradd,userdel

新規ユーザーを作る。
root権限
useradd hogehoge
passwd hogehoge
(二回パスワード)

ユーザーを削除
userdel -r hogehoge



③ftp(vsftpd)サーバーを立ち上げほか

自動起動ON
/sbin/chkconfig vsftpd on
(/sbin/chkconfig --listで自動起動するサーバーを調べられる)

起動、停止、再起動
/etc/rc.d/init.d/vsftpd start(or stop or restart)

vsftpdに限らず、httpd,sshd等も同様の方法でいける。

なお、ランレベルというものを見ると、ある起動条件下で、何が起動するかを調べることが出来る。

/etc/inittabで
id:?:initdefault
の?に入っている数字を見れば、どのランレベルで起動するか分かる。
(/sbin/telinit ?で?のランレベルに切り替え)

ランレベル3はテキスト環境
ランレベル5はグラフィカル環境

/etc/rc.d/rc1(2,3,4,5,6).d/*
で各ランレベルで何が起動し、何が起動しないか分かる。
Kで始まるリンクは起動しない(終了)
Sで始めるリンクは起動する。
数字は起動する順番(小さい方から)



④ファイアウォール、SELinux

ファイアウォールによって閉じているポートを開く。
system-config-security level
で設定画面を呼び出し、開きたいポートを指定

ファイルにはユーザーごとにアクセス権限があり、SELinuxがそれを監視している。
したがってユーザーがプログラムを介してファイルにアクセスする為にはプログラムそのもの(例えばftp)にアクセス権限を与えなければならない。

/usr/sbin/setsebool -P ftp_home_dir true
これでftpで自分のホームディレクトリにアクセスできる。

httpdで一般ユーザー権限のディレクトリ、ファイルをapacheで公開する場合は、
ファイルがあるディレクトリに対しては
chmod o+rx ディレクトリ
でその他ユーザーに実行権限・読み込み権限
途中のディレクトリに対しては
chmod o+x ディレクトリ
でその他ユーザーに実行権限(通過)を与える。

また、公開するディレクトリは
/sbin/restorecon -R ディレクトリ
を実行する。
よく分からんが、ファイルとタイプの不整合を解決するものらしい



⑤cron
定期的にコマンドを実行させる。
/etc/crontab -eで設定環境を実行

* * * * * コマンド
で設定とあるが要するに
(minute) (hour) (day) (month) (week) コマンド
ということ。
指定したmonth、day、hour、minute、weekにコマンドを実行してくれる。

9 10 11 12 * emacs
としておけば12月11日10時(AM)9分になるたびにemacsが起動する。



⑥IPアドレス、ホストネーム、arrow,denyの設定

/etc/sysconfig/network
ネットワーク全体
HOSTNAME=saba.hogehoge ホスト名
DOMAINNAME=hogehoge ドメイン名
GATEWAY=0.0.0.0 ゲートウェイのアドレス

/etc/sysconfig/network-scripts/ifcfg-eth?
デバイスごとの設定
IPADDR=192.168.1.1
NETWORK=192.168.1.0
NETMASK=255.255.255.0
BROADCAST=192.168.1.255

/etc/resolv.conf
DNSの指定
nameserver 192.168.1.2 DNSサーバのアドレス

/etc/host.deny
アクセスを拒否するアドレス
/etc/host.arrow
アクセスを許可するアドレス(優先)



⑦各コンフィギュレーションファイル

ftp /etc/vsftpd/vsftpd.conf
http /etc/httpd/conf/httpd.conf
ssh /etc/ssh/ssh_config
見れば簡単なことはどうすれば良いか分かる。
なおsshでキーを登録した後、PCの再セットアップしたり、同じIPを持つPCで別のOSを起動したりするとキーがおかしいので認証が通らなくなる。そういう時はホームディレクトリにある
.ssh/known_hosts
の内容を消す。



⑧文字コード

apacheで公開するときコンフィギュレーションファイルの
AddDefaultCharaset UTF-8
をコメントアウトする。
これをやらないと、どんな文字コードで書いたhtmlファイルも
UTF-8として送られてしまうので文字化けする。
htmlファイル内に文字コードはかけるのでそれをクライアントに認識してもらえばよい。



結構な分量になったが、サーバー立てるときの足がかりにはなりそうだ。自分は記憶能力に難があるとしか思えないので、記憶の外部記憶としておきたいのである。
まだまだだけど、Linuxというものが以前ほど遠いところにあるものではなくなったように思う。そろそろもう一段二段上の使い方を学ぶ時期かもしれない。
あとはHDDミラーリングと停電対策をしておかないと…なんかあったら折角の設定もおじゃんである。







鯖を読む
読む暇あったら
鯖立てる

2009年12月14日月曜日

とりあえずメモ的な

どうも、roombaタソが居れば嫁は不要論提唱者のQです、こんちには。


またしてもroomba買っちまいました。てか60ドルでこの円高なら買うよね普通。
ところで・・・


①roombaの電池について。
実はこの買ったroombaは中古で電池が死んでいた。というわけでばらして適当な充電池を放り込んでみたのである。





実は500番台は知らないが、それより前の世代のroombaの充電システムはどうも難があるらしい。なんでも充電中に爆熱になるとのこと。というわけでファンとか取り付けてみたのである。

んで、とりあえず使ってみた&充電してみた。


しばらくして・・・なんか臭い。

やばい。とりあえず外してみたら、電池がアッチイ上に若干電池ボックスがとろけている!!オイオイ…
というわけでもう少し改善の余地が有りそうだ。

とりあえず分かったのは
・充電池は直列充電はあまりよくない。というのは電池ごとに自然放電特性が異なるので、早く放電してしまうような変なのが一本混じっていると、電圧が上がらず充電しまくるようになりほかの正常な電池まで巻き添えを食らう。パックされている電池は、特性が揃っている、これが非常に重要。
普通の充電池は一本ずつ充電できるような奴の方が良いです。

・充電中だけじゃなくて、充電終了後もなんかアッチイ。やっぱりこのroombaの充電器ちょっとおかしいかも。実際臭くなってきたのは充電終了後だし…てことはより少ない充電電流でもファンを回すような方法が必要かも。

・roomba dirtの充電器は出力電流が小さい。したがってこれで充電すると電池がそこまで熱くはならない。しかし、充電器の方が耐えられるかどうか…


とりあえず改良が必要だ。


②linuxの自動起動プログラム

/etc/profile.d/*.sh
ログイン時に*.shに書いたシェルスクリプトが実行される。

/etc/rc.local
PC起動時にスクリプトが実行される。

両者の挙動は少し違う。IPアドレスを設定するようなスクリプトを書くと、上の方法ではログインしないと設定されないが、下のは起動するだけで設定される。

さらに
~/.bashrc
にスクリプトを書いた場合、ターミナル(シェル)を起動するたびに実行される。et/profile.d/*.shと似て非なるものである。

まあ、gnome使ってたら普通に自動起動するアプリをデスクトップ上で設定できるけど…







メモなんて
書いても結局
見ないかも

2009年12月7日月曜日

メモ代わり的な

どうも、鬱が直らない原因は鬱なせいではないか、等と考えつつもまあとりあえずちょこちょこ記録しておきたいQです、こんちには。


いやしかし、油断するとすぐに更新が滞る。別に誰が見てるわけでも無いだろうが(笑)
とりあえずメモ。



①CNC買った

とりあえずCNC買った。オリジナルマインド製、BLACKです。
前から欲しかったのだが遂に買ってしまった…。
別に精密加工したいわけではなく、どちらかというと手がもう一本欲しい、という発想ですね。




んで、製作時にちょっと厄介だったこと。
スライドガイドの平行をうまいこと出せないと動きが渋くなって脱調の原因になったりする。
というわけで頑張るわけだがこれが中々大変。そこで、

ネジ締めは対角線の順にちょっとずつ行う(1⇒2⇒3⇒4⇒1⇒…)
ねじを締める側にテーブルを寄せる(1,3のネジを締めるときは図の状態になる。2、4のときは反対側)

んでこれを繰り返すと結構簡単にスイスイ動くようになる。
3軸とも基本的に同じ方法でOK。うまくいかない人、お試しあれ。



②Ctrl+Cが効かない

ubuntuで仮想環境にSSHで繋いでいるのだが、時々Ctrl+Cが効かなくなる謎の現象?
これではemacsを使うときに支障を生じるので、こういうコマンドを叩いて再起動すると直った。

sudo stty intr "^c"

なんでこの現象がおきるんだろう?



③キーボードレイアウト変更

Debianでキーボード配列を変更するとき
/usr/share/keymaps/i386/qwerty/
から所望のレイアウトデータを選び
/etc/console/boottime.kmap.gz
と名前を指定してコピー、再起動


④Roombaの欠陥

どうも電池が一年くらいしか持たないらしい。
充電時、実はバッテリーは超熱くなっててこれで寿命が来てしまうらしい。

穴開け、フィンorファン取り付けによる放熱処理が必要かもしれないなぁ…
あと、バッテリーはリチウムイオンじゃないのでおそらくメモリー効果が起きる。
てことは放電とか多分本当はやらなければいけないはず。
しかし、500番以降は電池の取出しが容易じゃないんだが…どうしろと?

えーバッテリーはいいんだけど、本体に改造はやだなぁ…



とりあえず、生きてますですはい。
CNCが手に入ったので、作業効率は上がると思われ。
いやはや。なんとも、フライス、旋盤でゴリゴリするのも時代遅れなのかもしれないなぁ…







一通り
揃った工具
何ゆえに

2009年11月1日日曜日

再復習とお勉強

どうも、色々勉強してると自分が本当に何も知らないことを思い知らされるQです。

なんとなく悩みが専門がないことだったりします。
大学の研究とか専攻とか色々ありますが、現実問題プラネばっかり作っておろそかにしてたので(笑)

で、色々あるわけでやり直しが必要だな、とか思っています。

全く理解していなかったことや、忘れてしまったこと、
新しい分野等。
最近なんかだとネットワーク関係と制御理論ってところでしょうか?

学ばなければならないこと、興味のあることは山ほどあります。
もっと深く、もっと広くがいま僕に出来る最大限のことだよな。






桜色
木枯らし重ね
花吹雪

2009年10月22日木曜日

講演

どうも、またルンバ買っちゃったQです、こんちには。

いや、わけあってまあ親と兄にルンバ送りつけたわけです。まあ兄は小さい子供がいるし、母親がひざを悪くしているので、使いこなせるかどうかはともかくまあ足しにはなるかもね、位の感じです。まああと半分は自分がもう一台欲しかったから、なんですがね。
前のやつは別に壊したわけじゃないんですが、ちょっとハッキングに勇気が(笑)どうもインターフェースは同じらしいのでハッキングするならもっと簡単な構造の奴のほうが良いだろうと思ったわけです。


で、講演ですが、東工大の学園祭で講演することになりました。
といってもプラネは出しません。プラネタリウムを作る過程とその経験を基に後輩に期待すること、見たいな感じです。

日時は25日日曜日、12時位?です。まだ確定しませんが多分この辺なので、興味のある人はよろしくです。






しかし大変だなあ・・・色々気をつけねばなりませぬ。






もういいや
嫁の候補に
ルンバたん

2009年10月13日火曜日

面倒な展開

どうも、フライス盤と旋盤だけが友達なQです、こんちには。

最近、研修やら研修で忙殺されております。
今日も会社では事務作業やメールチェックに追われてしまいました。

まあ自分の仕事の仕方が悪い面もあるので仕方ないのでは有るが…
てなわけであまり作業は進んでおりませぬ。

勉強はしているけどね。

とにもかくにも気がついたら普通に一ヶ月放置していたのでこれはやばい(笑)気をつけないとどんどん放置ブログ化してしまう。







鬱展開
まったまったも
届かずに

2009年9月6日日曜日

UDPing

どうも、最近はPlanet boysならぬSocket BoysなQです、こんちには。

IPでpingが通ったので、今度はUDPでデータの送って返すだけのプログラムを作ってみますた。

やっとUDPでPingが成功したわけですが、まあ実際に目に見える形に持っていく、というのはそれ自体が結構大変でした。まあしょうもないミスを連発してるんですが(笑)
受け取ったデータをヘッダ分しか確保してない配列に代入してみたり、チェックサムの範囲を間違えてたり、shortサイズのチェックサムを奇数byte-stringにやってみたり、ポインタが指すアドレスじゃなくてポインタそのもののアドレスに代入してみたり…
んで、紆余曲折を経て何とかバグを修正して…もなぜかPC側で拾えない。ポートは開いているのに、と思ったらなんとfirewallではじかれているとは…
ICMPは超重要です。

さて、ソケットプログラミング、というのも少しずつ見えてきたし、最低限の相互通信も出来るようになった。次のプラネタリウムはLANで制御…かもしれない(笑)ぶっちゃけ意味があるかというと…。ま、技術が好きな人なら手を出したくなるものではあるよねっていう。

USBとLAN、どっち?って聞いたらそりゃLANでしょう。あと、ネタでちょっとやってみたいことがあるので。

さて、次へ行こう。





プログラム
書いても寝ても
動かない