2012年2月29日水曜日

WindowsサーバでNFSをマウントする

Windowsサーバ2008でLinux上で動作しているNFSサーバから領域をマウントして
みました。
あくまでも「Windowsサーバ」のお話になるので
通常のWindows(一般家庭用のHomeEditionなど)ではできないかもしれないので
ご了承ください。

■手順
①Windows Power Shellを開く
コマンドプロンプトではないのでご注意

②マウントコマンド実行
net use e: \\111.222.333.444\nfs
(構文的には [net use] [ドライブ名] [\\IPアドレス\マウントポイント]

③確認
「コマンドは正常に終了しました」と表示されればOK

■ポイント
・Windows Power Shellでないと実行できません
・Linux側のNFSサーバはすべて設定済みであること
(ネットワークやNFS設定、マウントポイントなど)
・マウントしたNFS領域に何かしらのファイル等が作成できない置けない場合は
NFSサーバ側(Linux側)に設定不備がある可能性が高い
(chmod 777ですべてのアクセス権を与えるとアクセスできるかもしれませんw)

■別途重要コマンド
・アンマウント
net use * /delete
YES/NO形式でアンマウントするか聞いてきます
*の部分は「e:」などにすればそのドライブだけアンマウントできます
また、このコマンドでのアンマウントはnet useでマウントしたNFSのみ
アンマウントできます

・ヘルプ
net use /?
オプションコマンドが全部見れます
ユーザ指定などのオプションもあります。必要に応じて使ってみてください

2012年2月25日土曜日

【CentOS】PHPインストールメモ

■環境
CentOS release 5.6 (Final)
Kernel \r on an \m
(インターネットがつながる環境であること)

■手順
yum update
yum -y install php

以上です。
updateは念のためおこなっておきます。
phpに関しての必要なモジュールは適宜必要に応じてインストールして
いただければと思います。
(なぜ、こんな簡単な手順を書いているんだとふと、疑問に感じてしまった・・・)

【エンジニアのしがらみ】作業手順書について考えてみた

今回の記事はかなり私事ではあるのですが、
小生エンジニアという仕事を一応やらせていただいており、一サービスを展開している
エンジニアとして毎日を過ごしております。
その中で(私的作業の中に)作業手順書を作成するという作業が結構な頻度で発生しております。
「作業手順書」という言葉が一般的に流通しているかどうかはわかりませんが、
簡単に言うとエンハンスやメンテのときに本番環境にデプロイ作業をする作業をすべて手順書と化し
作業日当日にはそれしかやらないという制約の元作業を行うためのドキュメントになります。
そんなドキュメント、作業手順書を大体、月に5件くらい書いています。
(多いときで10件くらい・・・)
私の中では「結構多い」と感じております。
(たぶん世の中にはもっとたくさんの手順書を書いていらっしゃる方がいると思いますが・・・)
そんな作業を淡々とこなしていることにいささか不安と不振を抱き始めた今日この頃
ちょっと思い立ったので「作業手順書」というものについて少し考えてみました。
本当に少しだけね。

そもそも作業手順書とは何のために作るのだろうか?
から考えてみました。以下考えたこと。

■なぜ作業手順書を作成するのか
・事前に準備した必要以上の作業を行わないことで作業ミス、作業漏れを防ぐ
(しか根本的な理由としてはないのかなーと・・・)

まぁ理由は理解したとして、今現段階で私が疑問に不振に思っていることを
率直に書いてみました。以下。

■疑問点、不信感をいだく点
・本当に作る必要はあるのか
・作業を行う人が手順書を書いて意味があるのか
逆にいうと手順書を書く人が作業を行って意味があるのか
・どこまで詳細に書く必要があるのか
・できる人が作業を行えば、手順書はだいぶ荒くても問題ないのでは
・手順書を作っている人的にはどうでもよいところをガンガン指摘される

ここから導き出される私的デメリット、以下。

■デメリットは
・人的コストが結構かかる
(どこまで詳細に記載するかによってくるが)
・定常化されている手順のコピペ作成によるリスク
(慣れすぎた手順、枯れた手順はレビューでもチェックが甘くなる)
・たとえば新規で作成した手順が本当に正しい手順かどうかを図る指標がない
・一人で手順書作成+作業をしてしまうと他の人が作成、作業をできない手順書が
知らぬ間にできあがってしまう

やはり一番は「コスト」かなと思います。コストとリスク回避が等価交換になっている
のだとは思いますが・・・
とはいえメリットもあるはずということでメリット以下。

■メリットは
・記録を残せる
・誰がやってもできるようになる(属人化解消)
・必要以上の作業をしないことによるミスの防止
・本番に対するビビリがなくなる(ある意味デメリットでもあるのか・・・)

基本的には「安全」とか「リスク回避」とかそんな感じのキーワードが
当てはまるんじゃないかなーと思います。

以上のつらつら書いたことを見返してみてまとめてみました。
まとまってないですが・・・
何の参考にもなりませんが、共感してくる人がいたら仲間ですw

■まとめ
・手順書職人になってしまった段階でこの負のスパイラルからは抜けられない
・極力ムダなこと、余計なことを書かないようにし、修正が少なくなるようにする
(A型の人は手順書作成をするとおわります)
・人的コストを考えると手順書を作る手順をまとめておく(手順書の手順書)

以上
もはや愚痴ですね・・・w
とりあえず書いたけどまた何か気づいたら追記してみよかな。

■P.S 20140108 自動化について
定型化された作業は自動化することでコストを下げられるかなと思っています
最近は(本当に定型化された)作業を自動化するようにしておりJenkinでのCDやcapistranoを使ってのコマンドの削減等をしています
またテストも自動化することで作業手順書に書く(であろう)確認項目の数を減らすようにしています

自動化することは本当にいいことだとは思うのですが、自動化することでデメリットも発生するかなと思っているので一応それも書いておきます
・自動化するためにプログラムやミドルウェアの操作、習得が必要
・自動化用のプログラムを「運用」する必要がある(エンハンス時のテストの修正や不具合修正等)
・教育することができなくなる、自動化されていることでボタン一発で作業やテストが完了するのでこれまで頑張って行っていた作業のノウハウをこれから来るであろう新しい人に教える必要がなくなる
・自動化に終わりはない(どこまでやるか、何のための自動化かを明確にしておく必要がある、たとえばこの自動テストは正常系のみを網羅するテストであるなど)

と書いてみましたが上記のデメリットが必ず発生すると考えても自動化は絶対やるべきかなと思います
やる理由の大きな目的は品質向上やコスト削減ですが、運用しているエンジニア(デプロイエンジニア)的には自動化することで精神衛生上もいいかと思います

自動化の作業を仕事でできるのが一番いいですが、小生は中々に難しい環境で結局あと回しになってしまっています
自動化を推進するプロジェクトとかチームで仕事ができるといいなと思っている次第です(そんなチームにしたいなとも思っています)

2012年2月22日水曜日

Windows7の不要なサービスの自動起動停止

ファイル名を指定して実行で
「msconfig」でシステム構成を開く
「サービス」のタブを開いて
状態のカラムをソートして「停止」が上に来るようにする
いまこの段階でチェックがついている項目は基本的には
チェック項目をはずしてしまって特に問題ありません。
心配な場合はサービス名でググるなどしてどんなサービスなのか
調べてからチェックボックスをはずすといいかもしれません。
「Microsoftのサービスをすべて隠す」というチェックボックスがある場合は
それにチェック入れて上記の方法にすればOSレベルで動作しなくなる
ということはないと思われます。

面倒な方は上記の方法でいっきにチェックをはずしてしまい、
動かなくなったものがあったらそれらしいサービスをチェックしたほうが
簡単かもしれません。
もし面倒であれば一度お試しあれ!

2012年2月21日火曜日

findコマンド【サンプル集】

■過去3日以内にアクセスされたファイルの一覧を表示
find . -type f -mtime -3 -ls

■hoge.txtより更新日が新しいファイルの一覧を表示
(hoge.txtは一覧には表示されないので注意)
find . -type f -newer hoge.txt

■hoge.txtより更新日が新しいファイルの一覧をtarファイルで固める
find . -type f -newer hoge.txt | xargs tar -cvf hoge.tar


状況によっては「ls」コマンドより重宝しそうです。
「xargs」コマンドとの連携もかなり使えそうです。
メモがてら書いたので、findコマンドの詳細はこの辺↓が参考になりそうです。
http://x68000.q-e-d.net/~68user/unix/pickup?find

2012年2月20日月曜日

TwitterException{statusCode=503, retryAfter=0, rateLimitStatus=null}

Twitter4jで出た場合
おそらく
APIのリクエスト制限に引っかかっていると思われます。
確か1時間で70回以上はアウトになります。
同一IPからだと思います。
(すいません。詳しくは忘れてしまいました orz)
(調べていただけると幸いです)

2012年2月18日土曜日

Windowsで何bit対応PCか確認する方法

Windows7でやりましたが、他のWindowsでも対応できると思います。
①ファイル名を指定して実行で「msinfo32」と入力

②「システム情報」という画面が表示されるので、
「システムの種類」の欄を見るとbit数の記載がある

2012年2月15日水曜日

WinMergeで相違のある箇所だけを表示する方法

メニューの
【表示 → Diffコンテキスト】
から、比較結果の表示範囲を限定できます。

例えば「1」を指定すると相違がある箇所の前後1行だけ、
「3」を指定すると前後3行だけが表示されます。
もちろん「0」を選択すれば、相違のある箇所だけが表示されます。
お試しあれ。

2012年2月14日火曜日

Firefoxで削除できないアドオンを直接削除する

Firefoxを開いて
「ヘルプ」→「トラブルシューティング情報」を選択
新しいタブでトラブルシューティング情報が開きます
「プロファイルフォルダ」の欄のとなりに「フォルダを開く」があるので選択
開いたフォルダの「extentions」フォルダを選択すると
アドオンを管理している直接のフォルダやXPIファイルがあるので、
ファイル名やフォルダの中にある情報
(アイコンやアドオン名を示すファイルがあるので気づくと思います)
を直接削除します。
また、トラブルシューティング情報の一覧画面にも
アドオン名と対応するファイル名orフォルダ名の表があるので
これが参考になるかもしれません。
Firefoxを開くとアドオン一覧からアドオンがなくなってると思われます。

余談ですが、このトラブルシューティング情報は結構便利かもしれません。
いろいろがここで設定が見れますよー。

2012年2月13日月曜日

Windowsでファイルサーバを構築する

Windows2008R2で行いました。
基本的な手順はここを見れば大丈夫です。
http://news.mynavi.jp/articles/2010/01/13/win2008r2_n1/001.html
Windowsのファイル共有機能を基本的には使用するだけです。

が、ただ一点注意することがあります。
445ポートを開放する
プライベート側だけならWindowsのファイアウォールだけなので
上記の設定を行っただけでOKなのですが、
グローバルからアクセスしたい場合にはルータなどのポートを開放
しなければなりません。
しかもファイル共有のポートが445というのがなかなか発見するのが
難しく(自分は苦労しました・・・)netstatなどでポートの状況を
監視しながら発見するしかありません。
というわけで、445ポートはしっかり開放してあげましょう。

2012年2月12日日曜日

警告: Authentication error: Unable to respond to any of these challenges: {oauth=WWW-Authenticate: OAuth realm="https://api.twitter.com"}

結構はまりました。。。
TwitterのAPIでタイトルのエラーでフォロー系の処理ができず。。。
原因は以下2つ

  1. 権限が「Read Only」だった
  2. 権限を「Read And Write」にした後トークンを再生成していた

トークンが変更していることに気づかなかった

なんとも情けない感じでした。
アクセスレベルはデフォルトがRead Onlyなので結構はまるかもです。

2012年2月11日土曜日

emacsでキーバインドを設定する方法

カレントディレクトリ配下の「.emacs」ファイルを編集して以下を
追記してください
たとえばrootユーザなら以下にあります
/root/.emacs
ない場合は新規で作成して問題ありません。

(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-\\" 'undo)
(global-set-key "\M-a" 'mark-whole-buffer)

上から
「ctrl+h でバックスペース」
「ctrl+\ で元に戻す」
「alt+a で全範囲選択」
となります

以上を.emacsファイルに追記したら一旦emacsを閉じ再起動してみましょう
設定したコマンドが割り当てられているはずです。
よく使うコマンド一覧があるので、ここでコマンドを見つけて
自分が好きなキーバインドをあてるのもいいかもしれません
http://www.greenwood.co.jp/~k-aki/article/emacs_key.xhtml

WindowsサーバでRDPのクリップボード共有ができない

Windows2008R2だけかわかりませんが、Windowsサーバでは
RDPのクリップボードの設定をしないとデフォルトではRDP間で
クリップボードが使用できない場合があるようです。
自分の場合は「Windows7」+「Windows2008R2」のケースでクリップボード
共有ができなかったので、以下を設定したところできるようになりました。

①ファイル名を指定して実行から「gpedit.msc」を実行












②「コンピュータの構成」→「管理用テンプレート」→「Windowsコンポーネント」

③「リーモトデスクトップサービス」
④「リモートデスクトップセッションホスト」→「デバイスとリソースのリダイレクト」
右ペインに表示された「クリップボードのリダイレクトを許可しない」をダブルクリック

⑤「無効」のラジオボタンをONにして「適用」

⑥サーバを再起動

以上です。
これで、RDP間でクリップボードが共有できるようになるはずです。
一度お試しあれ。

2012年2月8日水曜日

rpmで強制インストール

強制インストールかつ依存関係を無視してインストールします。

rpm -ivh --force --nodeps

どうしても入らないとき。
心が折れてしまったときにはお試しあれ。

2012年2月7日火曜日

買取王子での査定、見積もり結果

誰かのためになればと・・・はっておきます。
査定結果の文面だけはっておきます。ヘッダーフッター等の情報は削除しております。
あしからず。
2012/02/07付けでのデータになります。
売ったものは
 ■ベルセルク全36巻
 ■エヴァンゲリオン全12巻
 ■宮部みゆき小説7冊
 ⇒全55冊
となります。
正直、ショックでした。。。
まぁ送料無料で、いろいろと経費も含めると妥当といえば妥当なのでしょうか。。。
誰かの参考になっていただければ幸いです。
ちなみにまだ査定OKにはしてないですww

---------------------
---------------------
弊社買取サービスをご利用頂きありがとうございます。
買取王子カスタマーセンターです。

大変おまたせ致しました、
お送り頂きました買取ご依頼品の査定が終了いたしましたので
査定結果をご連絡差し上げます。

【査定結果】
 ─────────────────────────
 査定金額:57円
 ─────────────────────────

以下のページより、買取の承認・否認のいずれかをご連絡ください。
<ここに査定結果返信用のURL>

※承認後、1~2日(銀行休業日を除く)で指定口座へ代金をお振込み致します。
※ご返送の場合でも、只今ご利用キャンペーン中につき、送料は弊社が負担いたします。
本メール送信後1週間以上ご連絡がない場合はご承諾頂いたものといたします。


インターネット接続ができない場合や、査定についてお問合せがございます場合は、
本メールに「返信」いただき、お問合せ下さいませ。
折り返しご回答差し上げます。

何卒よろしくお願い致します。
 
---------------------
---------------------

2012年2月4日土曜日

facebookのAPI【考察】

facebookのAPIにどんなものがあるか簡単に調べてみました。
ここに記述しているもの意外でもいろいろとありますが、
個人的に使えそうなものをメモしておきます。

■RESTAPI
http://developers.facebook.com/docs/reference/rest/
「Old」とか「Legacy」という単語が目立っているのでおそらくは
違うものを使うほうがいいのでしょう
ただ、結構充実しているので、RESTが使える方はSDK的なものを
簡単に作ってしまえばいいかもしれません。

■AndroidSDK
http://developers.facebook.com/docs/reference/androidsdk/
アンドロイドプラットフォーム専用のSDK
Android環境がある方はこれを使えばJavaでガンガン書けるのかな?

■facebookJavaAPI
http://code.google.com/p/facebook-java-api/
どうやら非公式では存在するようです。
ただ、更新もとまっているようなのでfacebookの大元のAPIが増えて
いると使えない機能があるかもしれません。
認証方式が変更になっているとかあると完全にアウトですね。

といろいろとあるようです。
公式のSDKもJavaはないですが、多言語(JavascriptとかPHPとか)はある
みたいなので、興味ある方は見てみるといいかもしれません。
http://developers.facebook.com/docs/sdks/

今度、Javaでサンプルコードとか買いてみたいなー。

AutoHotKeyでCtrlキーをBreakキーにする

AutoHotKeyというキーバインドをマクロのようのスクリプトで変更できる
ソフトウェアがある
http://www.autohotkey.com/ (緑色のアイコンが目印だよ)
自分の場合これがないと好きなキー配置にできなかったので少しメモしておく。

まず自分の環境はこんな感じになっている
■Windows7
■英字キーボード
■Lenovo Edge13
この環境を使っている人は結構いればすぐにわかると思うが
自分の場合このキーボードを使っていて以下2つの問題点があった
①日本語変換キーがない
②Breakキーがない
①に関しては一応日本人なので全部英語で書くわけにはいかないので必須
②に関しては正直必要なないのだが、Windows7でRDPをしたときに
最大化表示をしても実は全画面表示にならない
これが自分の中で結構嫌で、「Ctrl」+「Alt」+「Break」キーで
全画面表示ができるショートカットキーがあるということを知り
Breakキーの導入にあたった

で、ここから設定方法に関しての記述であるが、
直球で設定を見せたほうがいいと思うので、設定ファイルをご覧あれ
■AutoHotkey.ahk
-------------------
RAlt::vk19
RCtrl::CtrlBreak
-------------------
上の設定が右Altキーを日本語切り替えキーにするマクロ命令で
下の設定が右CtrlキーをBreakキーにする設定である
記述方法は
「変換したいキー::変換後に割り当てたいキー」でOK
AutoHotKeyで使えるキーリストの一覧もあったのでメモ
http://ahk.xrea.jp/KeyList.html
ファイルを編集し設定変更後は上記設定ファイルを右クリックし
「Run Script」でOK
既に起動している場合は警告メッセージがでるが気にせずOK
これで今回のタイトルであった
「AutoHotKeyでCtrlキーをBreakキーにする」
は完了した
苦労した点はキーリストを発見するとこだったろうか
あとはそのキーリストが本当に変更したいキーなのかを
いろいろと変更しながら調べていったことだろうか・・・

2012年2月3日金曜日

【vSphere Client】Managed Object Browserで検索

簡単にやったことのメモをしておきます。
詳しいのは今度画像付とかで掛けるといいな・・・
あと結構うろ覚えだから単語とか間違ってるかもしれんです orz
①vSphere Clientがインストールされているマシンで
ブラウザを開いて「localhost」にアクセス
(ここでアクセスできないと問題外なのです)
(アクセスする方法はここでは省略)
②右下あたりに「オブジェクトコンソールを開く」みたいなリンクがあるので
クリックして開く
(これがManaged Object Browser)
③一番初めに開いた画面上の上から二つ目のリンクあたりに
「content」というのがあると思うので、クリック
④いろいろと表示が出てくるなかで「SearchIndex」をクリック
⑤FindBy・・・みたいなのがたくさん出てくると思うので、ここで
何で検索したいのかにあわせて選択
(自分がよく使ったのはFindByIpっていうAPIを使ったのでそれを説明)
⑥引数は三つで「データセンター」「IPアドレス」「へんなboolean型の変数」
ここで気をつけるのは「データセンター」の変数
データの形式が特殊なXMLで記述しなければいけないので、
正直なところここは何も入力しないほうがいいです!
IPアドレスは普通に「111.111.111.111」とか入れていただき
booleanのへんな変数は「true」を入力しましょう。
(booleanの変数は検索方法とかかもしれません)
(完全一致かそうでないか、みたいな)
⑦引数を入力したら実行
実行は下のほうにリンクがあるので、それをクリック
(名前忘れた・・・)
⑧検索結果は同一のブラウザ内の引数を入力した下のほうに
出現する
検索結果はVMのインデックス名みたいなのが出てくる
(確かvm-00000みたいなやつだったような・・・)
⑨検索結果のVMをクリックするとConfigInfoの画面に遷移する
基本的な情報は大体ここに載っているのであとはここを見て
適当にVMの情報を抜き取ってほしい
(インスタンスUUIDとか設定したVM名まであったはず)
(ここからネットワーク情報とかストレージ情報にも
さかのぼれたような気がした・・・)
以上です。
なんか曖昧な情報ばかりですいません。
時間があったら詳しく画像付で説明したいものです。

vsftpdでrootログインする方法

/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
の2つのファイルでrootが記載されている箇所を
# root
にして
service vsftpd restart
する

200 PORT command successful. Consider using PASV.

WindowsでコマンドプロンプトからFTPサーバに対してFTPコマンドを打ち
ログインには成功したけど、 そのあと ls コマンドとかを打つと
200 PORT command successful. Consider using PASV.
となりしばらくすると
425 Failed to establish connection.
となり何にもできない受信できない現象に陥る。
メッセージを見ると「パッシブモードを使ってみよう」
みたいなことが書いてあるが、サーバ側でパッシブモードを設定してもずっとこの状態・・・
そんなときは以下をやってみよう
Windowsファイアウォールの無効化
とりあえず、全部無効状態にしてやってみよう
きっとうまくいくはずです。。。