Archive for the ‘仕事’ Category

Sublime Text プラグイン

水曜日, 3月 30th, 2016

久しぶりな投稿。

これまでは

・保存に管理者権限が必要ないテキストファイルの編集
 ->通常モードで起動した秀丸
・保存に管理者権限が必要なテキストファイル(hostsなど)の編集
 ->管理者モードで起動したnotepad++
  (ショートカットのプロパティ設定で「管理者として実行」をチェック)

などの使い分けをしていた。

これはWindowsの仕様だと思われるが、同一テキストエディタを通常モードと管理者モードの2つのモードを持つテキストエディタ(プロセス)を同時に起動できないためだった。

会社が変わり秀丸のライセンスも無くなったことから最近はSublime Textを利用している。(Sublime Textも有償だが、、、)
そこで、Sublime Textのプラグインを駆使することで、2種類のテキストエディタを使い分けることなく通常のテキストファイルもhostsのようなテキストファイルも編集できないか調べてみた。すると以下のような2つのプラグインを見つけた。

■ hostsファイルの編集を容易にするプラグイン
martinssipenko/SublimeHostsEdit: Open and edit hosts file quickly
https://github.com/martinssipenko/SublimeHostsEdit

■ 管理者モードが必要なテキストファイルの保存を行えるようにするプラグイン
Superlime – Packages – Package Control
https://packagecontrol.io/packages/Superlime

これでhostsファイルの編集が容易になった。

PS.
apacheの設定でVirtualHost設定のテストをローカルで実施する時にhostsファイルを編集して動作確認をするので、hostsファイルを編集する機会が結構多いのよね。

SonicWALL NSA 250 + SonicWALL Global VPN Clientで、「The peer is not responding to phase 1 ISAKMP requests」エラーになる件

木曜日, 11月 13th, 2014

SonicWALL NSA 250にGlobal VPN Clientを使用してリモートアクセスするための設定と接続確認を行った際に、「The peer is not responding to phase 1 ISAKMP requests」が出た。

色々と調べて試すも一向に改善する気配がない。
サイト間VPNは問題なく行えているので、サイト間VPNのIKE鍵交換周りのログと比べてみることに。
そこで一旦、サイト間VPNを切断し、再接続時のログを取得する。
そしてGlobal VPN Clientでの接続時のログを取得しようとしたら、、、繋がった!!
張りっぱなしだった既存のサイト間VPNの接続が影響していたっぽいが、、、なんだそりゃ。

[以下、設定内容についての参考]

Dell SonicWALL GVC GroupVPN Configuration – YouTube
ttps://www.youtube.com/watch?v=6EMtpi-U8PA

む、YoutubeのURLを張ったらインライン表示になるんだね。それが主目的ではないので、URLを、、、

キヤノンITソリューションズ:UTMアプライアンス/次世代ファイアウォール「SonicWALL(ソニックウォール)」:サポート情報
ttp://canon-its.jp/cgi-bin/sonic_faq.cgi?faq_id=UTM2009&model=UTM

[The peer is not responding to phase 1 ISAKMP requests に関する情報]

もうページを閉じてしまっていたし、再度このメッセージで検索すればヒットすると思われるので省略。

クライアント側でKeepAliveを設定していてもSSHの接続が時々切れる件

火曜日, 10月 28th, 2014

とあるサーバーへのSSHの接続が時々切れる。無通信状態になったからという訳でもなく、ガシガシと使っている時でもブツッと。色々調べてみてもヒットするのはクライアント側のKeepAliveの設定の話だけだったのだが、ふとした拍子にNAT環境下ではルーターのセッション数制限に到達して切れることがあるという記事を見つけた。

[ルーター] -> [グローバルサーバー(接続対象)]

事象が発生する環境は上記のような構成で、ルーターではNAT/マスカレード機能は利用していたのだが、SSHで接続する対象サーバーはグローバルサーバーだったので関係なさそうではあったのだが、ルーターのNATのセッション数に関する設定を調べ試してみた。(ちなみにルーターはYAMAHAのRTX1200)

---- 従来(デフォルト)
nat descriptor timer 1 900
nat descriptor timer 1 tcpfin 60

* 指定無しの場合は、上記と同意。

---- 変更後
nat descriptor timer 1 120
nat descriptor timer 1 tcpfin 3

TCPのFINは接続の終了を示すので短くても良いよね、ってことで3秒程度にしてみた。
ブチブチ切れていたのが、ここ6時間ほどはキープできている。

CentOS6 + zabbix : yum updateしたらrepomd.xmlが404 Not Foundになる件

火曜日, 12月 17th, 2013

サーバーの更新をしようとyum updateしたら、

[root@server yum.repos.d]# yum update
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/i386/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: zabbix-jp. Please verify its path and try again

という感じでエラーになった。

/etc/yum.repos.d/zabbix-jp.repo
を覗いてみると、zabbix-jpとzabbix-jp-relatedpkgsの両方がenabled=1になってる。

[zabbix-jp]
name=ZABBIX-JP – $basearch
baseurl=http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP

 <省略>

[zabbix-jp-relatedpkgs]
name=ZABBIX-JP relatedpkgs – $basearch
baseurl=http://repo.zabbix.jp/relatedpkgs/rhel6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP
gpgcheck=1

・zabbix-jpの方のbaseurlは存在しない(or 認証が入る)
zabbixサイトのインストール方法では、URLにrelatedpkgsが指定されている。
ということから、zabbix-jp-relatedpkgsの方だけを参照するようにしたら良いのかなということで、zabbix-jpのenabledを0に変更。以下のように。

[zabbix-jp]
name=ZABBIX-JP – $basearch
baseurl=http://repo.zabbix.jp/zabbix/zabbix-1.8/rhel6/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP

 <省略>

[zabbix-jp-relatedpkgs]
name=ZABBIX-JP relatedpkgs – $basearch
baseurl=http://repo.zabbix.jp/relatedpkgs/rhel6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-JP
gpgcheck=1

するとエラーはでなくなりましたとさ。

CentOS 5 + gitolite : VerUPしたらリポジトリの作成・アクセス権の更新が行えなくなった件

木曜日, 5月 23rd, 2013

自社のgitサーバーをCentOS 5+gitoliteで運用している。gitoliteはepelで提供されているもの。
しばらく気が付かなかったのだが、新しいリポジトリの作成や既存のリポジトリへのアクセス権の変更がうまく行えなくなっていた。
どうやら gitolite-1.5.9.1-2 から gitolite-2.3.1-1 に更新されたことが原因っぽい。それを念頭に置いて対処した内容は以下の通り。

* post-updateのリンク切れ改善
以下のpost-updateのリンクが切れてたので修正。
/var/lib/gitolite/repositories/gitolite-admin.git/hooks/post-update

* .gitolite.rcの修正
yumによるアップデートでだと思うが、.gitolite.rc.new が出来ていたので、それに置き換え&適宜修正。
あとpost-updateの件を修正してcommit & pushを試したら$GL_GITCONFIG_KEYSがどうたらこうたらとエラーになったので、対応方法を調べて以下のように修正した。

[before]
$GL_GITCONFIG_KEYS = “”;

[after]
$GL_GITCONFIG_KEYS = “.*”;

以上で正常動作するようになった。

* 備忘録(気にしないで)


export GL_RC=~/.gitolite.rc
export GL_ADMINDIR=~/.gitolite
export GL_BINDIR=/usr/bin
export GL_REPO=gitolite-admin
export GL_USER=gitolite
export GL_TS=”$y-$m-$d.$h:$min:$s”
export GL_REPO_BASE_ABS=repositories # ここは~/.gitolite.rcの$REPO_BASEに合わせる

ベトナム - ふたたび

日曜日, 1月 20th, 2013

年末年始は予定通り帰国していたが、まぁ色々あってふたたびベトナムに来た。

ベトナムでは主にAndroid向けのアプリ開発を行うのだが、ベトナムの会社で保有している携帯端末数が少なく、どうするかなーと思っていたら、どうやら諸事情諸々で日本の会社にP-01Dが20台ぐらいあるってことを聞き、それは是非ベトナムの会社に持って行って使わねば、ってことでトランクや手提げバックやらに分けて入れて持ってきた。

何故分けたかというと、ベトナムではパソコン機器などの電子機器(あってる?)を大量に持ち込めないらしい。特に中古品は駄目らしい。そこで、手荷物をスキャンしても怪しまれない程度に分散させていた、、、つもりなのだがトランクとバックだけなので、10数台もあると5台/5台となり、見つかればそこそこ怪しまれるかなって感じではあった。

そしてハノイのノイバイ空港の税関を通る時、「ちょっと君、こっちへ」的なことを言われて行ったら、手荷物を詳しく調べられ、、、そして当然の如くP-01Dやらが10数台出てきて、「こっち来い」的なことを言われてさらに奥の部屋に連れられていったw。あちゃーって感じであるww。

そこで聞かれたのが「新品か?中古か?」だった。その時は、「特に中古が駄目」ということを忘れていたので、日本的感覚で封を切ったものは中古ってことで「中古!」と話したら「持ち込めない」と。「えーーーーー」って感じであるw。だけど封切った状態の物を見て新品か中古かを聞いてくることはひょっとすると、、、と思い「あー、ごめんごめん、P-01Dは新品だわ」って話したら、「じゃぁ、端末代の20%を税金として(?)払えばOK」とw。どちらにしろ何かは取られるのねーって思ったのだが、持ってきた目的を考えると金を払うしかないかなと。(袖の下費がまかり通っている御国なので、捕まった瞬間、幾ら渡せばいいのかなーとも考えたんだけどw)

支払う金額を最初は「端末代の20% × 10台」と言っていたのだが、日本的諸事情で端末代は無料だったので「じゃー0円ね」、、、っていう日本事情を汲んでくれる訳もなく、、、さらにお金払うなら会社で清算してもらいたいから領収書くれ、、、なんてことも一切通じず、、、そんなこんなを暫くあーだこーだしてたら、じゃー「100USDでいい」ってことになり、日本円で9,000円を支払って(1万札しか持ってなかったので1,000円お釣りねーってw。ちゃんと1,000円のお釣りくれたわw)、ようやく解放されたのであった。

初っ端から痛い出費である。

PS.
端末代の20%云々、領収書云々のくだりは、まったく英語ができない俺にとっては理解し合えない訳で、、、たまたまベトナムの会社で契約していた電話を評価のためにと持って帰っていたので、通訳さんを通しての会話であった。

そうそう、次の帰国は4月中旬!

ベトナム

土曜日, 10月 6th, 2012

いよいよベトナムへ。

大阪の関空付近で前泊することにしていたが、台風が近づいているということもあり、急遽、さらに前日の9/29に移動することに決めた。関空から飛行機は飛んだが愛媛~大阪間の電車&新幹線が動かずに移動できなかった、という最悪パターンは防ぎたかったので。空路を選択していたら、また面倒なことになっていたかもしれなかったので、陸路を選択しておいて正解だったかも。

しばらく優のドッチボールの練習相手になってやれないのでその練習と、まだ買う必要があった肩掛けバックの購入などをいそいそと済ましJR松山駅へ。いざ出発と電車が動き出したところで、嫁がこちらに向かって叫んでいる。「なに?」と窓の方に耳を傾けると、「車のかぎーーー!!!」とwww。駅まで私が運転してきて鍵をポケットに入れたままだった。そんな様子を見ていた車掌さんが電車を止めてくれて、無事に鍵を渡すことができた。スペアキーがなかったので2か月半もの間、JR松山駅の駐車場に置きっぱなしにするところだったw。ありがとう!JR松山駅の車掌さん!!

その日の晩は妹宅でまったり。子供をてがったり、妹旦那と酒を飲んだり。

次の日は台風が上陸するとのことだったが、チェックインが14時だったのでどうしようかなーとか言っているうちに昼が過ぎ、そろそろ妹宅を出ようかというところで台風もいよいよ接近。軒並み電車が運航停止になっていくなか、なんとかホテルまで辿り着けた。ホテルに着く直前は傘もさせない状態だった。関空とを結ぶ関空線は車も含め通行止めになっていたから関空横(島内)のホテルにしてたらアウトだった。(その場合は、チェックインが遅くても、早めに関空には入ってただろうけど)

そんなこんなで色々あったけど、無事関空から飛行機は飛び立ち、予定通りにベトナム - ダナン入りしたのであった。

ギャラリー (2012/9/29 – 2012/10/21)

Vietnam

cronと改行コード(CR+LF)

木曜日, 8月 16th, 2012

ハマったので。

cronで定期的に実行する内容をcrontabファイルに記載している。
/etc/cron.d配下にファイルを配置したり、/etc/crontabに行を追加して利用する場合は、誰でも見やすい場所にあるので誰でも気が付きやすいが、ユーザー毎にcrontab -eで設定を行うと、どのユーザーで設定を行ったのかを把握していないとなかなか気が付かない。特に複数のユーザーが開発を行っているような環境では。

そこで、gitの対象となるファイル群の一部としてreadme.txt + crontab.txtを作成し、その辺りが誰でも分かるようにしていた。
これまでは、crontab.txtはLinux環境に合せて改行コードもLFだったのだが、何かの拍子(まぁWindows環境で編集したタイミングではあるんだろうけど)にCR+LFに切り替わっていた。

それを気が付かずに、別担当者がcrontab.txtの内容をターミナルソフト(多分Putty)でコピー&ペーストしたため、crontabの改行コードもCR+LFになっていたようだ。

これが原因で、、、
・crontabに記載しているshが呼ばれない。
・呼ばれない原因が、shファイル?shファイル内に記載しているディレクトリ?ファイル?が見つからないエラーになっている。(っぽい)
のような事象になっていた。

↑で「っぽい」と書いたのは、以下の理由により原因がはっきりしなかったため。

crontabに記載していたのは以下の内容だった。
—–
*/15 * * * * sh /xxx/xxx/xxx/xxx/xxx/backup.sh
—–

Linux上のローカルユーザー宛てにメールが飛んできていたので、エラー内容を確認するも、
—–
No such file or directoryup.sh
—–
と訳が分からないエラーになっていた。このため、shファイルが無い?shファイル内に記載しているディレクトリ?ファイル?が無い???と悩んでいた。

その後、色々と調べた結果、改行コードが以下のようになっていたことが判明した。
—–
*/15 * * * * sh /xxx/xxx/xxx/xxx/xxx/backup.sh[CR][LF]
—–

CRが影響して、
・backup.shを backup.sh[CR] として認識していたっぽい。
・エラーメッセージの改行がおかしくなる。
となり上記のような事象となっていたようだ。

メッセージも本来(shファイルが見つからない場合)であれば、
—–
/xxx/xxx/xxx/xxx/xxx/no_exists_backup.sh: No such file or directory
—–
となっていたと思われる。

あと、shファイル内に記載しているディレクトリかファイルが存在しないのかをチェックするために、shファイル内にecho “START”といった感じでecho文を埋めまくったのだが、これもCRの影響でかうまく表示されてなかった。(CRを除去すると、これもうまく表示されるようになった)

さらに、初期のcrontab -eで改行コードがCR+LFになっていると、以降の編集ではLFにすることができなかった。
これは、
1.crontab -eで、一旦、全行削除。
2.LFに変換したcrontab.txtの内容をコピー&ペースト。
とやっても、改善されなかったため。

1.crontab -eで、一旦、全行削除し、保存終了(:wq)。
2.LFに変換したcrontab.txtの内容をコピー&ペースト。
とすると、ようやく改善された。

あとで気が付いたのだが、crontab -e後の画面下部に

—– 改行コードがCR+LFの場合
“/tmp/crontab.XXXXmZuzWz” [dos] 2L, 98C

—– 改行コードがLFの場合
“/tmp/crontab.XXXXmZuzWz” 2L, 98C

といった感じで、[dos]が出るかどうかでも判断できるみたい。

viで改行コードがCR+LFになっているファイルを開くと行の末尾に^Mが表示される場合があるが、今試してみる限りでは表示されない。
これが表示されるともっと早くに気が付いたと思うのだが、、、どういう場合にでるんだったっけ???

lvm2パッケージを消してしまった場合

木曜日, 7月 12th, 2012

CentOS 6 minimal で不要なパッケージ(私的に)

http://truering.info/?p=625

の続き。

仮想環境であれば、マザーボードの状態を監視するlm_sensorsは要らなかったな、、、と思って消したらlvm2を消してしまった。(lmなんちゃら==lvm2だったか???と思ってw)

論理ボリュームを利用しているにも関わらずlvm2パッケージを消してしまうと、再起動後は論理ボリュームが認識されずファイルシステムが読み取りとなる。
この場合は以下の手順で復旧できた。

1.電源投入
2.メンテナンスモードでログイン
3.読み取り専用を、書き込み可能状態にする。
投入するコマンドは以下の通り。
mount -o remount,rw /dev/mapper/VolGroup00-LogVol00_root
※/dev/mapper以降は、画面上に表示されているパスを入力する。
※df -hすると、/dev/mapper/VolGroup00-LogVol00_rootが/にマウントされていたので、
上記のパスだったが、そこは環境/状況に応じて切り替える必要があるかも。
4.lvm2を再インストールする。
yumが使えたら、
yum install lvm2
駄目なら、
rpm -ivh http://…/lvm2-2.02.95-10.el6.x86_64.rpm
※URLは、CentOSのミラーサイトなどからパッケージURLを求める。
5.再起動する。
※Hyper-V上のゲストOSの場合はうまく再起動できなかったので、強制電源OFFして起動しなおしたらうまくいった。

policycoreutilsパッケージを消してしまった場合

水曜日, 7月 11th, 2012

CentOS 6 minimal で不要なパッケージ(私的に)
http://truering.info/?p=625

の続き。

削除可能なパッケージを探す場合、yum removeで消そうとしてkernelとか主要パッケージが対象となるか(消さない)、ならないか(消す候補)で調べていったのだが、中には単体で消せそうだけど、消したら次回起動時にkernel panicやファイルシステムが読み取り専用で起動してしまうこともある。その1つが、policycoreutilsパッケージ。(恐らく、SELinuxの関連パッケージを消したら不要だと思うけど、無効にしただけだとどうか、、、は試したことがないような気がする)

policycoreutilsパッケージを消した時、kernel panicになり起動ができなくなるのだが、この場合は、SELinuxを無効に&Singleモードで起動し、policycoreutilsを再インストールすれば起動できるようになる。超ざっくりだけど手順は以下の通り。

1.電源投入。
2.Grubの起動直後のカウントダウン時に何かしらのキーを選択して、Kernel一覧を表示する。
※CentOS(2.6.xxx…)という項目が一覧表示され、古いKernelを選択できる画面。
3.先頭にある「CentOS(2.6.xxx…)」を選択したまま、e を選択。
4.さらに「kernel /vmlinuz…」を選択して、e を選択。
5.「kernel /vmlinuz…」のコマンド行の編集状態になるので、末尾に「selinux=0 single」を追記。
6.エンターキー押下などにより、編集状態を終了。
7.b を選択して起動。
8.yum install policycoreutils でインストール。
※起動直後はメンテナンスモードになって、rootのパスワードとかを入れないといけなかったかも。
9.再起動

policycoreutilsパッケージを消してkernel panicになってしまう以外に、、、lvm2パッケージを削除してしまって、再起動後は(論理ボリュームが正常に認識されずに)ファイルシステムが読み取り専用になる、、、なんてことも。この話も後程。