Archive for the ‘PC’ 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ファイルを編集する機会が結構多いのよね。

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

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

CentOS5+Monitorix

日曜日, 6月 16th, 2013

自鯖のリソース監視をしてみるかなーと思い立つ。
自鯖はそこそこのスペックだけど、このサイトを上げているWebサーバー、自分のドメインを持つメール、MLシステム、諸事情で上げねばならなかったDNS、ウィルスチェック、MySQLなどなど、そこそこのプロセスが同時稼動しているので、軽量で手軽にセットアップできるものが無いかなと調べてみたら、、、
monitorixなるものを発見。あまり設定方法が記載されたサイトがヒットしなかったが、まぁ簡単なんでしょう、ってことで以下の手順でセットアップしてみた。

1. rpmforgeかepelのリポジトリに無いかなと思って検索してみたら、rpmforgeに存在した。

yum --enablerepo=rpmforge,epel list | grep [Mm]onitorix

2. そしてインストール。

yum --enablerepo=rpmforge install monitorix


・<省略>

============================================================
Package Arch Version Repository Size
============================================================
Installing:
monitorix noarch 2.5.2-1.el5.rf rpmforge 127 k
Installing for dependencies:
libdbi x86_64 0.8.1-2.1 base 37 k
lua x86_64 5.1.4-4.el5 epel 229 k
perl-Email-Date-Format noarch 1.002-4.el5 epel 15 k
perl-MIME-Lite noarch 3.029-1.el5.rf rpmforge 97 k
perl-MailTools noarch 1.77-1.el5.centos extras 91 k
perl-TimeDate noarch 1:1.16-5.el5 base 32 k
perl-rrdtool x86_64 1.4.7-1.el5.rf rpmforge 55 k
rrdtool x86_64 1.4.7-1.el5.rf rpmforge 916 k
ruby x86_64 1.8.5-29.el5_9 updates 279 k
ruby-libs x86_64 1.8.5-29.el5_9 updates 1.6 M
xorg-x11-fonts-Type1 noarch 7.1-2.1.el5 base 1.5 M

Transaction Summary
============================================================
Install 12 Package(s)
Upgrade 0 Package(s)

Total download size: 4.9 M
Is this ok [y/N]: yっとな。

3. vi /etc/httpd/conf.d/monitorix.conf
ひとまず許可するアクセス元のIPを設定(LAN内からと会社からアクセスできるように)。

allow from 127.0.0.1
allow from 192.168.NNN.0/24
allow from GGG.GGG.GGG.GGG/24

4. /etc/init.d/monitorix [start | restart]

5. /etc/init.d/httpd [reload | restart]

6. http://truering.info/monitorix

あー、なんて簡単なんでしょ。

でも、LISTENしているポートの内、HTTPSは表示されてないな。
HTTPSを含め、その他の特殊なポートはカスタマイズが必要な模様。RRDToolあたりを調べたらいいのかな。

眠くなったので本日は終了。

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に合わせる

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パッケージを削除してしまって、再起動後は(論理ボリュームが正常に認識されずに)ファイルシステムが読み取り専用になる、、、なんてことも。この話も後程。

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

火曜日, 7月 10th, 2012

ここ最近、CentOS 6をインストールする時はminimal構成でセットアップしてから必要なパッケージをインストールしている。
例えば、以下のように。

yum install acpid (仮想の場合は不要。論理スイッチないし)
yum install logwatch
yum install ntp
yum install wget
yum install yum-cron

そして、/etc/init.d配下を覗いて不要そうなデーモンを削除する。(パッケージ名は、rpm -q –whatprovides /etc/init.d/xxxxx で調べる)

yum remove device-mapper-multipath (CentOS5では、kernelも対象になるのでNG)
yum remove iscsi-initiator-utils (CentOS5では、kernelも対象になるのでNG)
yum remove libcgroup
yum remove fcoe-utils
yum remove lldpad
yum remove rpcbind
yum remove yum-updatesd

これでスッキリするんじゃなかろうか。

上記削除パッケージは、yum removeで消そうとして、kernelとか主要パッケージが対象となるか(消さない)、ならないか(消す候補)で調べていったのだが、中には単体で消せそうだけど、消したら次回起動時にkernel panicやファイルシステムが読み取り専用で起動してしまうこともあるので注意が必要だ。(その話は、後述)

cron + sh + wget 改め curl で HTTPレスポンスコード判定

木曜日, 7月 5th, 2012

定期的に、とあるURLを呼び出すのにcron + sh + wgetで行っていた。

RESULT=`wget $URL –server-response –spider 2>&1`
CHECKRESULT=`echo $RESULT | grep -c ‘HTTP/1.0 200 OK’`
if [ $CHECKRESULT -eq 0 ]; then
cat $RESULT | mail -s “$MAIL_TITLE” $MAIL_TO
exit
fi

HTTPレスポンスコードの判定がスマートじゃないなぁ~(200固定だしw)と思いながらも。

今回、HTTPレスポンスコードに応じて処理を振り分ける必要が出てきたので、HTTPレスポンスコードをスマートに判定するやり方(というか、値判定が容易にできる方法)が無いか再度調べていたら、curlでできそうなことが分かった。
その結果、以下(cron + sh + curl)のように。

RESULT=`curl –silent –write-out %{http_code} –url $URL1 –output $DOWNFILE1`
if [ $RESULT -ge 400 ]; then
cat $DOWNFILE1 | mail -s “$MAIL_TITLE” $MAIL_TO
exit
fi

うん、いいんじゃないでしょうか。

PHP:現在が月の第何週か

木曜日, 6月 14th, 2012

いろいろな算出方法があるけど、以下が一番シンプルで他人(PHP5)任せな方法かな?

$tm = strtotime(“first Day of this month”, time());
$gd = getdate($tm);
if ($gd[“wday”] != 1) {
$tm = strtotime(“last Monday”, $tm);
}
$weeknum = date(“W”, time()) – date(“W”, $tm) + 1;

Dropboxの「LAN接続時に同期」 or 「Enable LAN sync 」を利用することによる不要な通信について

金曜日, 6月 1st, 2012

Dropboxの「LAN接続時に同期」または「Enable LAN sync」は、

通信できない状態になり自動的にログオフ状態となるが、通信できるようになった時に自動的にログイン状態に復帰する機能

と勝手に想像していたら

LAN内に同じアカウントで動かしているDropboxクライアントがある時に、そのDropboxクライアント同士で同期したいという時に使う機能

のようだ。

双方でインターネット経由でファイルをアップ&ダウンロードするよりかは、LAN内で同期できるものは同期した方が早いし、グローバル向きのトラフィックが減らせるので良いのかもしれない。

何故上記のようなことを知ることになったかというと、、、
別件でルーターのログを見ていたら、LAN内にあるPCから255.255.255.255:17500宛てにブロードキャストされているのを発見したから。

このブロードキャストは30秒毎に2回ずつ行われているようなので、たまにしか使わない機能のためにONにするのは無関係な人にとって迷惑になりかねないということを考えると、基本的にはOFFで利用した方がよいでしょうかね。(頻度が多いとONの方が良いのかな)

サーバー設定:SSHを利用したトンネリングについて

火曜日, 5月 15th, 2012

前回の投稿では、「SSHポートフォワーディング」としてたけど、トンネリングという方が適切かな、、、とも思うので変更。

※前回の投稿
うっちゃんねる» Blog Archive » サーバー設定:SSHポートフォワーディングを行う
http://truering.info/?p=576

今回は、リモート拠点にプライベートIPを持つサーバーがあり、そこにアクセスしたい場合の話。(しかもリモート拠点にはグローバルIPを持つサーバーが無いという状況)
なので、リモート拠点にあるサーバーから、こちらのグローバルサーバーへ接続してもらい、そのセッション/トンネリングを経由して接続しに行く、という形になる。

コマンド形式は以下の通り。
serverB2> ssh -N -f -A -t -g userA@serverA -R portA:serverB1:portB

xxxxxA(userAとかserverA、portA)がローカル拠点、xxxxxB(serverB1とかportB)がリモート拠点の各種情報となる。

具体的な値を例にすると、
192.168.0.10> ssh -N -f -A -t -g root@10.0.0.1 -R 8023:192.168.0.1:23
となる。
※ローカル拠点側のグローバルIPを10.0.0.1とする。

リモート拠点側の192.168.0.10上で上記コマンドを実行すると、10.0.0.1と192.168.0.10間でセッション/トンネリングが張られ、10.0.0.1上の8023で待ち受け(LISTEN)ている状態となる。
そこでローカル拠点のPCから、telnet 10.0.0.1 8023とすると、リモート拠点にある192.168.0.1にtelnet接続ができる。

なお、デフォルトの状態では、上記コマンドを投入しただけでは、10.0.0.1上で、localhost(127.0.0.1)の8023でのみ待ち受け状態となる。
なので、sshd_configに以下の項目を設定する必要があるようだ。(コメントかされてて、noになっていた)

—– /etc/ssh/sshd_config
GatewayPorts yes
—–