またまたvimのお話です。
vimでは他のいくつかの言語と同じように変数に値を代入するとき、左辺にリストを持ってくる事ができます。
let [ foo , bar ] = [ 10 , 20 ]
echo foo " 10
echo bar " 20
let [ foo , baz ] = [ 10 , [ 20 , 30 ] ]
echo foo " 10
echo baz " [ 20 , 30 ]
これを使うとmatchlist関数を受け取るときに便利です。 matchlist関数は matchlist({expr}, {pat}[, {start}[, {count}]]) という書式で、評価するとマッチした結果を10個の要素を持つリストで返します。 ※マッチしないと空にリスト[]を返す
let [ match , sub1 , sub2 , sub3 , sub4 , sub5 , sub6 , sub7 , sub8 , sub9 ] = matchlist( '2010/05/17' , '\(\d\{4}\)\/\(\d\{2}\)\/\(\d\{2}\)' )
" ['2010/05/17', '2010', '05', '17', '', '', '', '', '', '']
上の文の問題は左辺と右辺の数が合わないとエラーになる為、matchlistが必ずマッチしないとダメと言うところですね。その辺は一旦別の変数を経由してマッチしたかどうか調べればよいと思いますが、面倒ですね。 代入が式ではない悲しさを感じます。
読者の方々で、OSのインストールを100回以上行ったことがある人、手を挙げて!
と言った場合、手を挙げることができますか?
私の場合、WindowsについてもLinuxについても、両方とも数え切れないくらいインストールを行いました。そして、この先もインストールし続けるのではないかと。人呼んで、インストールマニアです(笑。
なぜ、そんなにインストールを繰り返すのかというと、理由は多々あります。
マシン(M/Bだったり、メモリだったり、NICだったり)が不調で、インストールはしたものの何かおかしいぞということで、パーツをとっかえひっかえしてみたり。
初期インストールから3ヶ月経過したので、そろそろクリーンインストールするかということで、インストールしたりと。
当然、仕事でサーバ構築も100台以上行っていますから、必然的に増えてはいますが。
OSの再インストールを行うと、いろいろと気づいたりいいことがたくさんあります。
続きを読む...
最近、ようやく広まってきたWidnowsServer2008ですが。
デスクトップの画面はこんなカンジです。

ですが、ライセンスを入れずに検証をしていて検証期間が切れると、大変なことになります。
続きを読む...
Vimscriptは文法をチェックしないで1行ずつ実施する為か、下記の様なスクリプトもエラー無く実行できます。
function! Test()
for i in [ 1 , 2 , 3 ]
echo i
return
endfunction
本来ならば、forの終わりにendforが必要ですが、for内でreturnを読み込んだため、endfunctionまで一気に向かってしまいます。
そんな1行ずつ実行する性質はExコマンドモードで制御構文を直接打つ事でも確認できます。 Vimのノーマルモードで、以下の様に実行すると
for i in range(10)
echo i
endfor
"echo i"を入力した段階で、"0"が出力(echo)され、"endfor"を入力すると、残りの 1~9が出力されます。
モンキーでござる。
Active Directoryの世界には、「フォレスト」と「ドメイン」というコンセプトがあります。
簡単に言うと、「ドメイン」は「リソースを共有させるためのコンピュターのグループ」と定義出来ます。
で、「フォレスト」とは、「ドメインのグループ」と言えます。
ドメインは簡単に名前が変更出来ないため、名前を変えたければ、新しいドメインを作って、それから古いドメインから新しいドメインにリソースを移行する必要があります。複雑ですけど、マイクロソフトが「AD移行ツール」というアプリケーションを開発し、だれでも(無料で)利用可能な形でリリースされています。
AD移行ツールは本当に素晴らしいのですが、問題があります。
例を挙げます。
「saru.local」というフォレストがあるとします。そのフォレストの中には、「saru.local」というドメインもあります。
次、「neko.local」というフォレストもあるとします。そのフォレストの中には、「neko.local」と「saru.local」という2つのドメインがあります。
この環境の場合、「saru.local」(フォレスト)の「saru.local」(ドメイン)から「neko.local」(フォレスト)の「saru.local」(ドメイン)に移行出来ません!
なぜかというと、フォレスト名が異なるのに、ドメイン名が同じです。つまり、AD移行ツールがフォレストを識別出来ないことに理由があります。
しかし、裏技があります!2段階の移行です。
上記の例を続けます。「saru.loca」から「saru.local」に移行出来ないため、もう1つのドメインを構築する必要があります。「neko.local」フォレストの中の「koneko.local」とします。
で、下記の手順で行います:
①「saru.local」(フォレスト)の「saru.local」(ドメイン)から「neko.local」(フォレスト)の「koneko.local」(ドメイン)に移行する
②「saru.local」(フォレスト)の「saru.local」(ドメイン)を完全に削除する
③「neko.local」(フォレスト)の「koneko.local」(ドメイン)から「neko.local」(フォレスト)の「saru.local」(ドメイン)に移行
④「neko.local」(フォレスト)の「koneko.local」(ドメイン)を完全に削除する
終了です!!
複雑ですけど、もっと簡単な方法がないらしいです。
社内システムを使っていたら、正常にSSOできないとのクレームが。
SSOとは、シングルサインオンの略で、社内のグループウェアから社内システムへのログインを簡略化するために、ちょちょいといじって使っています。
みてみると…。
続きを読む...
CentOS 5では、yumを利用する際に高速なミラーサイトを自動的に選択してくれる機能があります。
yumを実行したときに、
Loading "fastestmirror" plugin
のように表示されれば、該当のパッケージが入っています。
表示されない場合は、以下のようにしてインストールしてみましょう。
# yum install yum-fastestmirror
通常であれば、これで高速なミラーサイトを利用可能なはずですが、最初は速かったのに後で遅くなった場合などは、劇遅ミラーを選択されている可能性があります。
そういった場合、下記方法にて回避するとよいでしょう。
続きを読む...
Windows Server 2008へのドメイン移行パス
移行パスを整理する事で見えてくる事があります。
人によっては見方が色々だとも思いますので、私の考え方そのものも、
基本的には「氷山の一角」なのでしょう。
Windows NT4.0、Windows 2000、Windows2003ドメインからの移行パスを纏めます。
続きを読む...
Windows STOPネタです。
大変お久しぶりにサーバネタを書きたいと思います。
Windows OSを管理する方であれば一度はお目にかかるであろう、
「STOPエラー」という名前の「ブルースクリーン」・・・。
主として新規アプリケーションを追加したり、バグフィクスで発生する。
レジストリやカーネル領域に悪影響を与えるから発生するものですが、
今回の紹介は「0x0000007F」というカーネル不具合について書きます。
続きを読む...
SunOSネタです。
tarコマンドでDATにバックアップを実施する際、データの暗号化が可能です。
簡単にバックアップ方法とリストア方法の例を纏めておきます。
当然ですが、全領域バックアップはufsdump等を利用するべきと考えてますので、
臨機応変に使い分けてください。
個人機で試験していますので環境による差分がある可能性があります。
・ハードウェア Sun Ultra60+DDS4
・ソフトウェア SunOS 5.9
・その他 各Patchは適用済
続きを読む...
Red Hat Enterprise LinuxのクローンOSであるCentOSですが、CentOS4まではup2dateコマンドを使ってパッケージのアップデート等を行っていました。ところが、CentOS5からはup2date コマンドが廃止されたので、yum (Yellow dog Updater, Modified) を使ってパッケージのアップデート等を行うことになります。
yumはaptと似たような使い勝手でパッケージ管理を行うことができますが、aptよりも高機能になっています。単にパッケージのインストール・アップデート・削除にとどまらず、パッケージグループのインストール・削除も可能となっています。
yumのコマンドの引数の主なものは、
update
check-update
upgrade
remove
list
info
provides
clean
makecache
groupinstall
groupupdate
grouplist
groupremove
search
shell
resolvedep
localinstall
localupdate
deplist
が用意されています。
基本的な使い方として、パッケージのインストール・アップデート・削除を行うには
続きを読む...
前回、[Xen] CentOS5でvirt-installを使って仮想環境を作るという内容のブログを投稿しました。ゲストOSにCentOS5を入れる場合はよいのですが、CentOS4を入れる場合はいままで非常に困難を極めました。
ところが、最近のRed Hat Enterprise Linux ES4のアップデート(U5)では、CentOS5と同じようにXenのゲスト環境のカーネルが利用できるようになりました。結果、CentOS4でもU5相当のCentOS4.5のイメージを利用することで簡単にCentOS4のゲスト環境を作成できるようになります。
以下、方法の説明です。
続きを読む...
今回は、Red Hat Enterprise LinuxのクローンOSとして有名なCentOSの話です。
2007年3月に、Red Hat Enterprise Linux 5(以下、RHEL5)がリリースされました。それに伴い、2007年4月にCentOS5もリリースされました。RHEL5・CentOS5がリリースされたことによって、Webアプリの実行環境が劇的に変化することが予想されます。大きな変更点としては、以下のようなものが挙げられます。
- Apacheが2.2系に
- phpが5.1系に
- MySQLが5.0系に
- PostgreSQLが8.1系に
- Kernelが2.6.18に
- 仮想環境Xen対応に
その中の、仮想環境
Xenについて取り上げてみます。
Xen非対応のOS(CentOS4など)では、XenのパッチをあてたKernelを再構築するなどして、環境を構築する必要がありましたが、CentOS5ではネイティブにサポートしているので(インストール時にVirtualizationのオプションを選択のこと)、非常に簡単にXenの環境が手に入ります。
Xenでは、管理用のOS Domain-0 と、ゲストOSが必要です。Domain-0上でゲストOSのインストール・起動等をコントロールすることができます。また、ゲストOSのコンソールへのアクセスも行うことができ、シームレスな操作を行うことが可能です。
Domain-0の環境は、Virtualizationのオプションを選択して初期インストールした時点で環境が手に入るので、ゲストOSの作成方法について解説をしたいと思います。
続きを読む...
Solarisネタです♪
よく知られるNFSにはバージョンが存在します。
主流としてはバージョン3なのですが、Solaris10からはバージョン4です。
その事について纏めます。
[NFSバージョン指定方法]
Solaris9まではNFSv3が標準で使用されておりましたが、
上述で書いた通りSolaris10はNFSv4が標準となっています。
バージョンミスマッチを防ぐ為、Solaris10のNFSクライアントで、
NFSバージョン4をバージョン3へ変更します。
・修正ファイル
/etc/default/nfs
・修正ライン
NFS_CLIENT_VERSMAX
NFS_CLIENT_VERSMAXパタメータは、NFSクライアントが使用する最大の
NFSバージョンを指定するパラメータです。
このパタメータを「3」に変更してNFSクライアントが使用する最大のバージョンを「3」とします。
hoge#vi /etc/default/nfs
NFS_CLIENT_VERSMAX=3
上記の手法で変更を実施すると、全NFS設定が反映されます。
各NFS毎に設定を反映させる場合は下記を実施します。
home# mount -F nfs -o vers=3 <SERVER>:/path <MOUNT>
※参考※
Sparc Enterprise ですか・・・
CheckPoint FireWall-1 NG、NGXネタです
さて、このネタがサーバ分類なのかネットワーク分類なのか、
非常に難しいところなのですが。 (むぅぅ)
FW-1におけるSIC(*1下記参照)のリフレッシュ方法について纏めます。
[前提条件 moduleとcenterが分かれている事]
・EnforcementModule = Unix (IPSO含)
・SmartCenter = Windows (2000,2003)
1. EnforcementModuleへログインします。
1-1. ログイン後、「#cpconfig」を実行します。
1-2. 表示より「*1 Secure Internal Communication」を選択します。
2. 以前とは異なるActivation Keyを入力します。
2-1. Would you like re-initialize communication ?(y/n)[n]?
本表示に対して[y or n]を入力します。
ここでは再設定を実施するので[y]と入力します。
2-2. Are you sure ?(y/n)[n]?
継続しますので[y]と入力します。
2-3. Activation Keyを入力します。
再度確定入力を要求されますので、同じkey入力を実施します。
2-4. cpconfigメイン画面に戻りますので「Exit」を選択します。
下記のような再起動を要求する表示が出ますので[y]入力。
Would you like to do now ?(y/n)[y]?
再起動が実行されます。
3. スタート→プログラム→Check Point SMART Clients→
Check Point Configuration NGを実行します。
(NGXの場合は、NGXと表示されます。)
3-1. Check Point Configuration Tool ウィンドウが起動しますので、
「Secure Internal Communication」タブを選択します。
3-2. Activation Keyフィールド及びConfirm Activation Keyを入力します。
当然ですが、EnforcementModuleと同じkeyを入力します。
3-3. Check Point Configuration Tool にて「OK」を選択します。
3-4. cpconfigダイアロボックスが表示されますので、「はい」を選択します。
4. cpデーモン(サービス)が再起動されます。
[SICが正常に確立されない時]
・EnforcementModuleとSmartCenterのOS日付は正確ですか?
相互日付誤差が1分以内で無ければ、EnforcementModuleにて、
証明書が有効になりません。
・SmartCenterのInternalCAとFQDNは正しいものでしょうか?
・EnforcementModuleにて下記コマンドを試行してください。
#fw unloadlocal (セキュリティポリシがアンロードされます)
※参考※
#fwm unload local
Solaris10ネタです。
[ ケース ]
Solaris10 をインストールしたマシンが既に構築されており、
これをインストールサーバとして、ネットワークインストールします。
[ 条件 ]
クライアントとサーバは、同サブネットに存在しており、
CDを使用するものとします。
1. インストールサーバとして利用する機器へrootログインします。
2. Solaris10 Software CD1 を利用機器の CD ドライブに挿入。
3. CD イメージ用のディレクトリを作成します。
# mkdir -p /export/home/install-image
→任意のディレクトリで問題ありません
4. マウントされたディスクの Tools ディレクトリへチェンジディレクトリします。
# cd /cdrom/cdrom0/s0/Solaris_10/Tools
5. CD-ROM ドライブ内のイメージをインストールサーバの
HDDへコピーします。
# ./setup_install_server /export/home/install-image
6. /(root) ディレクトリへチェンジディレクトリします。
# cd /
7. Solaris10 Software CD 1 を取り出します。
8. Solaris10 Software CD 2 をシステムの CD-ROM ドライブに挿入します。
9. マウントされた CD の Tools ディレクトリにチェンジディレクトリします。
# cd /cdrom/cdrom0/Solaris_10/Tools
10. CD-ROM ドライブ内のイメージをインストールサーバの
HDDにコピーします。
# ./add_to_install_server /export/home/install-image
11. /(root) ディレクトリへチェンジディレクトリします。
# cd /
12. Solaris10 Software CD 2 を取り出します。
13. インストールする Solaris10 Software CD 毎に、
上記 8. →12. を繰り返して下さい。
14. Solaris10 Languages CD を利用機器の CD-ROM ドライブに挿入します。
15. マウントされた CD の Tools ディレクトリにチェンジディレクトリします。
# cd /cdrom/cdrom0/Tools
16. CD-ROM ドライブ内の CD をインストールサーバの
HDDにコピーします。
# ./add_to_install_server /export/home/install-image
17. /(root) ディレクトリへチェンジディレクトリします。
# cd /
18. Solaris10 Languages CD を取り出します。
19. ファイルにインストールクライアントの情報を記載します。
設定する IP、クライアントの Ethernet Address は決定済みとします。
# vi /etc/hosts
:
192.168.1.1 hoge
:wq!
# vi /etc/ethers
:
8:x:20:99:99:99 hoge
:wq!
20. インストールサーバ上の Solaris10 CD イメージの Tools ディレクトリに
チェンジディレクトリします。
# cd /export/home/install-image/Solaris_10/Tools
21. ネットワークでインストールするためのシステムを設定します。
# ./add_install_client hoge sun4u
| |
| +------ プラットフォーム
nodename (uname -m で確認)
インストールサーバの設定は以上になります。
クライアントインストールを行ってみましょう。
※インストールクライアントで実行
(参考までに"stop+a"でokプロンプト)
ok boot net - install
PCにおいて システム時刻=時計 は、様々な箇所で利用されています。身近なところでは、タスクバー上の時計、メール送信時のメール送信時刻や、ファイル保存時のファイル更新日時がシステム時刻を参照しています。
そのため、システム時刻を正しく設定しておくのは非常に大切なことです。PCの時計はM/B(マザーボード)上の水晶振動子からのデータで時刻を合わせているが、さまざまなノイズ等の影響を受けるため、1日に数秒~数十秒単位で狂う場合が多々あります。
テレビやラジオ等の時報で自分の時計を合わせるように、PCの時計も時刻設定することが可能ですが、手動で合わせるのは非常に面倒かつ正確性に欠けるため、Windowsのソフトウェアとして様々な自動時刻合わせのソフトウェアが提供されています。
自動時刻合わせのソフトウェアは、NTPサーバに時刻を問い合わせに行き、時刻を同期させるという処理を行っています。Windows Vista/XP/2000 では、標準でこの機能を使うことが可能ですが、多くのユーザは使い勝手の良いフリーウェアを探して利用されていると思います。というのも、時刻合わせの頻度(間隔)を簡単に変更することができるため、1時間に1回といった頻度で時刻同期処理を行い、より正確なシステム時刻になるようにすることが可能です。
しかし、Vistaに正式対応していないアプリケーションで、管理者権限を必要とする操作(\Program Files配下のファイルを操作する・システム設定を変更する等)は、ほとんどの場合意図する動作をしないことが多いです。そのため、時刻を変更する自動時刻合わせのソフトウェアもまともに動作しない場合が多々あります。
その場合、Windows標準の時刻同期処理(タスクバー上の時計をダブルクリックし、インターネット時刻のタブを開くと設定画面があります)を使えば、同期処理を難なく行うことが可能です。しかし、更新頻度がデフォルトで1週間=604800秒になっているため、次の時刻更新時には下手をすると数分くらいずれている可能性もあります。
ところが、更新頻度の設定画面が用意されていないため、ユーザは容易に変更することができませんが、下記方法にて変更することが可能です。
レジストリの設定を変更する必要があります。下手な操作をすると最悪起動しなくなることがありますので、十分注意の上作業してください。
1. レジストリエディタを起動する
「Windowsキー + R」でファイル名を指定して実行のダイアログを開き、「regedit」と入力してEnter。
2. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\W32Time\TimeProviders\NtpClient を開く
3. SpecialPollInterval のDWORD値を変更する。
ここでの単位は秒になっています。私は1時間に1回更新しているので、その場合は3600を指定します。なお、表記部分を10進数にしてからデータを入力しましょう。
なお、上記で指定した値は、次の更新以後の更新頻度を設定するものです。そのため、最悪1週間待ってもよいですが、すぐにでも変更したい場合は下記方法を試してください。
1. タスクバーの時計をダブルクリック
2. インターネット時刻のタブをクリックし、「設定の変更」ボタンをクリック
3. 「今すぐ更新」ボタンをクリック
この作業で、次回の同期の時刻が現時刻から設定頻度の時間後になっていることを確認できます。
なお、上記はVistaに限ったことではありません。Windows XPやWindows 2000でも同様の設定が可能ですので、フリーウェアを入れるのが面倒だったりする場合は設定しておくとよいでしょう。
補足:
NTPサーバですが、デフォルトではtime.windows.comになっています。NTPサーバは近場(国内)のサーバを指定してあげるとよいでしょう。プロバイダが指定している場合は、そちらを利用しましょう。私の場合は、自分のサーバがNTPサーバになっているので、そちらを指定していますが…。
Solaris10ネタです。
文字コードを自動判別する新機能が追加されました。
「auto_ef」という新機能としてSolaris10から追加されました。
「auto_ef」 は、可能性の高い文字コードを判別して、
出力することができるという優れものです。
Ex) 対象ファイル = testfile.txt
% /usr/bin/auto_ef testfile.txt
eucJP
上記の出力結果では"testfile.txt"が、
eucJP である可能性が非常に高いという結果を表します。
表示エンコーディングは、Solarisの"iconv"で利用可能な、
エンコーディングとなります。
"-a" オプションを指定すると、可能性があると判定された、
エンコーディングがスコアレポートと共に表示されます。
Ex)対象ファイル = testfile.txt
% /usr/bin/auto_ef testfile.txt
eucJP 0.94
zh_CN.euc 0.04
ko_KR.euc 0.02
eucJP である確率が94%、zh_CN.euc である確率は4%、
ko_KR.euc である確率は2%であると判定されています。
又、-l を指定することで、判別の精度をより高くする事も出来ます。
レベルは、"0"から"3"まであり、 "0"が最も精度が低く、
レベルが上がるに従って判定精度が上がります。
但し、レベルの上昇に伴い処理速度は遅くなります。
Ex)レベル"1"で判定
% /usr/bin/auto_ef -a -l 1 testfile.txt
eucJP 0.94
zh_CN.euc 0.04
ko_KR.euc 0.02