ふと気づくと、CentOSが5.3から5.4になっていました。
もうひとつ、DVDのイメージがtorrentなるファイルになっています。
あれ〜前は、ISOファイルがそのまま入っていた気がするのになあ〜
BitTorrentというP2Pのファイル共有ソフトのフォーマットだそうです。
μTorrentというソフトでダウンロードできました。
コメットさんなるのも有名だそうです。
早くブラウザ側でサポートしてほしいですよね。。。
2009年10月23日
2009年07月24日
最近VMwareを触ることが多いです。
どうも、最近VMwareを触っている時間が長いです。
いくつかのWEBシステムを統合化してかつ400Kmほどの遠距離引っ越しの準備です。
VMwareのVMware ESXi ハイパーバイザもWindows Hyper-V Serverと同じように無償で導入できます。
構成は、
VMware ESXi License と、VMware ESXi 4.0 Installable イメージ(ISO)、VMware vSphere Client からなっています。
ISOイメージで起動してインストール(PowerEdgeSC440)すると、

んな感じの画面になります。
ある意味シンプルです。メーカによってはBIOSのセットアップ画面のほうがこぎれいかもしれません。
ログインでデフォルトのrootでログインすると、以下のような設定メニューがきます。

メニューは、

という感じでハイパーバイザとしては最小限のものです。それ以外は、vSphere Client から設定する感じです。
vSphere Client は、WindowsPCにインストールした画面は、こんなログインです。

ログインすると、

という感じで、タブで設定画面やコンソールを切りかる感じです。GUI周りの使い勝手は、Hyper−Vマネージャにかなり劣っている気がしました。特にちょっとネットワーク的に遠くにあるマシンのマウスを動かす時は、かなり古くて解像度の低いマウスを使っているかのような動きに感じます。vSphere Client 自体がかなり重いアプリケーションなのかもしれません。
さすが、Hyper-Vマネージャから仮想マシン接続は、Windowsクライアントを知り尽くしているMicrosoftという感じです。
でも、実際に設定を始めるとLinux/Unixに関しては、

という感じに多くのテンプレートがリストアウトされ、対応OSの多さに安心できました。
一度お試しを。。。
※ VMwareの資格試験あります。V4は英語教材が中心かもしれません。
資格的には、70-652 TS: Windows Server Virtualization, ConfiguringでHyper−Vするか、VMware Certified Professional (VCP)のVCP4でVMwareにするかは、現在のところメインに仮想化するターゲットの割合がWindows中心かLinux中心かで分けられる気がします。まあ、両方入れるというのも手でしょうが、管理ツールが分かれるのもなあ〜って感じです。
VMware資格の必須のICMと呼ばれるInstall, Configure, Manage トレーニングコースは3000ドルだそうです。う〜〜ん。会社の応援がないと、とても、とても、受講できそうにはありません。。。
マイクロソフトHyper−VのMCTSの70-652 は、トレーニング必須でなくてもいいので、ある程度のマシンを用意さえすれば独学でも勉強していけるという点で、会社も個人の規模も小さい僕みたいな環境の人にも、やさしく、うれしい点です。
いくつかのWEBシステムを統合化してかつ400Kmほどの遠距離引っ越しの準備です。
VMwareのVMware ESXi ハイパーバイザもWindows Hyper-V Serverと同じように無償で導入できます。
構成は、
VMware ESXi License と、VMware ESXi 4.0 Installable イメージ(ISO)、VMware vSphere Client からなっています。
ISOイメージで起動してインストール(PowerEdgeSC440)すると、
んな感じの画面になります。
ある意味シンプルです。メーカによってはBIOSのセットアップ画面のほうがこぎれいかもしれません。
ログインでデフォルトのrootでログインすると、以下のような設定メニューがきます。
メニューは、
という感じでハイパーバイザとしては最小限のものです。それ以外は、vSphere Client から設定する感じです。
vSphere Client は、WindowsPCにインストールした画面は、こんなログインです。

ログインすると、

という感じで、タブで設定画面やコンソールを切りかる感じです。GUI周りの使い勝手は、Hyper−Vマネージャにかなり劣っている気がしました。特にちょっとネットワーク的に遠くにあるマシンのマウスを動かす時は、かなり古くて解像度の低いマウスを使っているかのような動きに感じます。vSphere Client 自体がかなり重いアプリケーションなのかもしれません。
さすが、Hyper-Vマネージャから仮想マシン接続は、Windowsクライアントを知り尽くしているMicrosoftという感じです。
でも、実際に設定を始めるとLinux/Unixに関しては、

という感じに多くのテンプレートがリストアウトされ、対応OSの多さに安心できました。
一度お試しを。。。
※ VMwareの資格試験あります。V4は英語教材が中心かもしれません。
資格的には、70-652 TS: Windows Server Virtualization, ConfiguringでHyper−Vするか、VMware Certified Professional (VCP)のVCP4でVMwareにするかは、現在のところメインに仮想化するターゲットの割合がWindows中心かLinux中心かで分けられる気がします。まあ、両方入れるというのも手でしょうが、管理ツールが分かれるのもなあ〜って感じです。
VMware資格の必須のICMと呼ばれるInstall, Configure, Manage トレーニングコースは3000ドルだそうです。う〜〜ん。会社の応援がないと、とても、とても、受講できそうにはありません。。。
マイクロソフトHyper−VのMCTSの70-652 は、トレーニング必須でなくてもいいので、ある程度のマシンを用意さえすれば独学でも勉強していけるという点で、会社も個人の規模も小さい僕みたいな環境の人にも、やさしく、うれしい点です。
2009年07月22日
plesk8コントロールパネルにセカンダリDNSのIPアドレスを登録
Pleskを使うとどうしてもPleskサーバをDNSのマスターサーバにしたほうがより高機能になります。でも、セカンダリDNSのIPアドレスを設定するところがありません。(Plesk9では、Common Allow Zone Transfer ACLとしてあるのですが。。)
そこで、MySQLのデータベースにあるpsaデータベースを変更してDNSのゾーン転送を許可させます。
Pleskコントロールパネル(Linux)のサーバ画面より、

データベースを選択して

MySQLを選択、

データベースから、

MySQLAdminを呼び出します。

psaデータベースをプルダウンで選択し、

miscテーブルに移動し

表示します。

「新しい行を追加する」を選択して

セカンダリのDNSサーバの情報を、DNS_Allow_Transfer[数字:ちなみに0からスタートのようです。]をIPアドレスとともに追加します。

あとは、DNSサーバの設定を何か変更すればDNSサーバにmiscデータベースの内容が反映されたnamedの設定ファイルが作成され反映されます。
追伸:プライバシマークの審査が先週末にはいってしまい大変でした。一日中、審査員の方と丁々発止やりあうともうふらふらです。いっぱい指摘事項あったし。。。
そこで、MySQLのデータベースにあるpsaデータベースを変更してDNSのゾーン転送を許可させます。
Pleskコントロールパネル(Linux)のサーバ画面より、

データベースを選択して

MySQLを選択、

データベースから、

MySQLAdminを呼び出します。

psaデータベースをプルダウンで選択し、

miscテーブルに移動し

表示します。

「新しい行を追加する」を選択して

セカンダリのDNSサーバの情報を、DNS_Allow_Transfer[数字:ちなみに0からスタートのようです。]をIPアドレスとともに追加します。

あとは、DNSサーバの設定を何か変更すればDNSサーバにmiscデータベースの内容が反映されたnamedの設定ファイルが作成され反映されます。
追伸:プライバシマークの審査が先週末にはいってしまい大変でした。一日中、審査員の方と丁々発止やりあうともうふらふらです。いっぱい指摘事項あったし。。。
2009年05月29日
HP DL160G5のILOの設定画面はど〜こ〜だ〜・・・
サーバ構築のためHP(ヒューレットパッカード)のDL160G5のセットアップを始めました。
バンドルOSは、RED HAT ENTERPRISE LINUX 5 です。でも、本体にはシリアル番号の入った赤いカードとHPへの登録用のFAXフォームぐらいのものでした。
仕方なく、RED HAT NetworkよりDVDのISOをダウンロードして、DVD−Rに焼いてインストールしました。
さて、あとは、ILO(Integrated Lights-Out)の管理コンソールにIPアドレスを割り当ててデータセンターにセットアップしてリモートで最終設定をすればOKです。
再起動してBIOSの起動画面見ながらILOの設定画面に入るためにF8キーを押す準備して待っていました。
はて、、、
HPのスタートアップ画面のあと、ネットワーク起動の設定画面、RAIDカードの設定画面、、、BIOS設定画面、、、Linuxのブートメニュー
!
あれ〜いままで見慣れたILOの起動メッセージが僕には見えません。あれ〜っと、フレームをチェックしましたが、昔のDLのようにILOのログインパスワードもシール張りされていません。でも、メンテナンス(Mgmt)というポートは存在します。。。
再度3回ほどDL160G5の起動を目を凝らしましたがやはりないです。
HPに問い合わせたところ、BIOS設定画面のIPMIにILO関係のIPアドレス設定画面といして吸収されていました。それ以外の設定はすべてWEBベースへ移行していました。
ILOはCompaqのDLサーバの頃からみんなにリモートアクセス用に重宝されたオプション機能でしたが、とうとう、BIOSレベルで統合化されてきているようです。
ILOという名前も、そのうちなくなってしまうかもしれませんね。。
バンドルOSは、RED HAT ENTERPRISE LINUX 5 です。でも、本体にはシリアル番号の入った赤いカードとHPへの登録用のFAXフォームぐらいのものでした。
仕方なく、RED HAT NetworkよりDVDのISOをダウンロードして、DVD−Rに焼いてインストールしました。
さて、あとは、ILO(Integrated Lights-Out)の管理コンソールにIPアドレスを割り当ててデータセンターにセットアップしてリモートで最終設定をすればOKです。
再起動してBIOSの起動画面見ながらILOの設定画面に入るためにF8キーを押す準備して待っていました。
はて、、、
HPのスタートアップ画面のあと、ネットワーク起動の設定画面、RAIDカードの設定画面、、、BIOS設定画面、、、Linuxのブートメニュー
あれ〜いままで見慣れたILOの起動メッセージが僕には見えません。あれ〜っと、フレームをチェックしましたが、昔のDLのようにILOのログインパスワードもシール張りされていません。でも、メンテナンス(Mgmt)というポートは存在します。。。
再度3回ほどDL160G5の起動を目を凝らしましたがやはりないです。
HPに問い合わせたところ、BIOS設定画面のIPMIにILO関係のIPアドレス設定画面といして吸収されていました。それ以外の設定はすべてWEBベースへ移行していました。
ILOはCompaqのDLサーバの頃からみんなにリモートアクセス用に重宝されたオプション機能でしたが、とうとう、BIOSレベルで統合化されてきているようです。
ILOという名前も、そのうちなくなってしまうかもしれませんね。。
2009年05月13日
GENO(ZLKON)ウイルスにくわれた?
ゴールデンウィーク中に会社でGENO(ZLKON)ウイルスに食われたPCが発生した。
まあ、アンチウィルスソフトが対応するまでに、Virusがやってくることは外資系の会社にいたことはよくありました。でも、今日の時点で多くの有名セキュリティサイトでこの名前を検索しても情報はあまり出てきません。まあ、ダウンロードしてから発動するタイプでそのプログラムがころころパターン的に変わっていくMALウェアの場合は、攻撃されているセキュリティホール(Acrobat/Flush)をアップデートで閉じるしかないのかもしれませんね。
一応、セキュリティソフトのサポートに連絡して対応済みになったとのことでした。
でも、今回のソフトはFTPソフトの接続を監視してID/PASSWORDを奪うらしい(?正確な情報が今一みつからない)ので、そのPCのFTPソフトに設定してあったアカウントのパスワードはすべて変更したのでした。
また、改竄された可能性も考え、サイトで最近更新されたファイルの一覧をつくって確認してもらいました。
FTPアカウントはすべてLinuxマシンのものだったので、すべてのアカウントでログインして、
$ find . -ctime -7 (7日以内に変更されたファイルを探せ!)
./.bash_history
.....
......
$
って感じでしょうか。。
ただ、いろいろなサイトのGENO(ZLKON)ウイルスの情報を見ていると、ボット機能なんかもあったり(まあ、サイトにあるプログラムをダウンロードして実行するタイプだからいくらでも機能アップできるのでしょうが。。。)して、ほんと嫌なマルウェアですよね。当の本人は、ゴールデンウィーク中は「ず〜〜と」魔の2歳にさしかかって「嫌々」連発の娘の子守ばっかりだったのでPCにほとんどアクセスしなかったし、FTPソフト自体この数年テスト以外に使ったためしがないのであった。。。SSH(SCP)メインです。
おしまい。。
まあ、アンチウィルスソフトが対応するまでに、Virusがやってくることは外資系の会社にいたことはよくありました。でも、今日の時点で多くの有名セキュリティサイトでこの名前を検索しても情報はあまり出てきません。まあ、ダウンロードしてから発動するタイプでそのプログラムがころころパターン的に変わっていくMALウェアの場合は、攻撃されているセキュリティホール(Acrobat/Flush)をアップデートで閉じるしかないのかもしれませんね。
一応、セキュリティソフトのサポートに連絡して対応済みになったとのことでした。
でも、今回のソフトはFTPソフトの接続を監視してID/PASSWORDを奪うらしい(?正確な情報が今一みつからない)ので、そのPCのFTPソフトに設定してあったアカウントのパスワードはすべて変更したのでした。
また、改竄された可能性も考え、サイトで最近更新されたファイルの一覧をつくって確認してもらいました。
FTPアカウントはすべてLinuxマシンのものだったので、すべてのアカウントでログインして、
$ find . -ctime -7 (7日以内に変更されたファイルを探せ!)
./.bash_history
.....
......
$
って感じでしょうか。。
ただ、いろいろなサイトのGENO(ZLKON)ウイルスの情報を見ていると、ボット機能なんかもあったり(まあ、サイトにあるプログラムをダウンロードして実行するタイプだからいくらでも機能アップできるのでしょうが。。。)して、ほんと嫌なマルウェアですよね。当の本人は、ゴールデンウィーク中は「ず〜〜と」魔の2歳にさしかかって「嫌々」連発の娘の子守ばっかりだったのでPCにほとんどアクセスしなかったし、FTPソフト自体この数年テスト以外に使ったためしがないのであった。。。SSH(SCP)メインです。
おしまい。。
2009年05月12日
ちょっとSWAPを増やしたいなあ〜
PHPモジュールを組み込んだApacheWebサーバは、かなりメモリ空間をとるので多くのポートで別々のApache経由のPHPアプリケーションを個々に違ったユーザIDとアパッチの設定で上げていたりする場合、子プロセスをあまりフォークさせていない状況でも、システム全体がメモリ不足気味になる場合があります。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22048 user1 20 0 32752 2148 1768 S 0 0.2 0:00.97 httpd
32024 user2 20 0 33428 13m 2432 S 0 1.3 0:02.07 httpd
1 root 20 0 2136 556 536 S 0 0.1 0:01.53 init
TOPでみると、基本的にはリソース(RES)は2M〜13Mくらいのようですが仮想空間(VIRT)はHTTPDの一本あたり30Mバイトになっています。100本で3GBです。まあ、アパッチをconfigureするときにシェアードでApacheモジュールを組み込むのを嫌がっていることもあるのですが。。。。
もちろん、メモリを増やすのが一番いいのですが、実際には同時アクセスで個々のアプリケーションはそうそう動かないので、実際にアクティブなメモリがそれほどは不必要なのです。(昔、こういう場合、Apacheのinetd経由での起動なんていうのもやったなあ〜Apache2からServer Typeの宣言自体がなくなったんで、ServerType inetd はできなくなった。。)
こんな場合は、Swapを増やすのが一番ですよね。
[root@xxxx1 ~]# mkdir /swap; cd /swap
[root@xxxx1 swap]# dd if=/dev/zero of=/swap/swap1 count=2048000
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 45.463 s, 23.1 MB/s
[root@xxxx1 swap]# chmod 600 /swap/swap1
[root@xxxx1 swap]# mkswap /swap/swap1 1024000
Setting up swapspace version 1, size = 1048571 kB
[root@xxxx1 swap]# swapon /swap/swap1
[root@xxxx1 swap]# vi /etc/fstab
で
/swap/swap1 swap swap defaults 0 0
追加・・・
って感じで1GBSWAP追加です。ddは古いコマンドでデフォルトで1block=512bytesなので設定したいキロバイト数を2倍したサイズでファイルを作りましょう。。。
ふう、なんか、仮想空間の空きが1GB以上あるとほっとします。。。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22048 user1 20 0 32752 2148 1768 S 0 0.2 0:00.97 httpd
32024 user2 20 0 33428 13m 2432 S 0 1.3 0:02.07 httpd
1 root 20 0 2136 556 536 S 0 0.1 0:01.53 init
TOPでみると、基本的にはリソース(RES)は2M〜13Mくらいのようですが仮想空間(VIRT)はHTTPDの一本あたり30Mバイトになっています。100本で3GBです。まあ、アパッチをconfigureするときにシェアードでApacheモジュールを組み込むのを嫌がっていることもあるのですが。。。。
もちろん、メモリを増やすのが一番いいのですが、実際には同時アクセスで個々のアプリケーションはそうそう動かないので、実際にアクティブなメモリがそれほどは不必要なのです。(昔、こういう場合、Apacheのinetd経由での起動なんていうのもやったなあ〜Apache2からServer Typeの宣言自体がなくなったんで、ServerType inetd はできなくなった。。)
こんな場合は、Swapを増やすのが一番ですよね。
[root@xxxx1 ~]# mkdir /swap; cd /swap
[root@xxxx1 swap]# dd if=/dev/zero of=/swap/swap1 count=2048000
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 45.463 s, 23.1 MB/s
[root@xxxx1 swap]# chmod 600 /swap/swap1
[root@xxxx1 swap]# mkswap /swap/swap1 1024000
Setting up swapspace version 1, size = 1048571 kB
[root@xxxx1 swap]# swapon /swap/swap1
[root@xxxx1 swap]# vi /etc/fstab
で
/swap/swap1 swap swap defaults 0 0
追加・・・
って感じで1GBSWAP追加です。ddは古いコマンドでデフォルトで1block=512bytesなので設定したいキロバイト数を2倍したサイズでファイルを作りましょう。。。
ふう、なんか、仮想空間の空きが1GB以上あるとほっとします。。。
2009年04月21日
Plesk サーバで標準のqmailシステムと一緒にpostfixも使いたい。。。
Pleskコントロールパネルを入れたシステムはメールシステムがDB連携したqmailに代わっています。
でも、postfixやsendmailな状態も楽しみたい人も多かったりして追加したくなる場合があります。
IPアドレスはネットワーク設定で簡単に追加できます。ただ、Pleskのqmailシステムはxinetd経由でqmailが呼び出されます。
service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock 。。。。。}
という感じです。
ただこのままだとIPエイリアスで追加したIPアドレスもListenされてしまってほかのサーバソフトウェアで利用できません。
どうも、xinetdの設定を変更しないといけないようです。
xinetd.confのドキュメントを見ると、
bind = xxx.yyy.zzz.XXX
bindでIPアドレス宣言をサービス宣言(smtp, smtps, submission)に入れると、設定したIPアドレスのみSMTPをListenするようになって、ほかのSMTPサーバを別IPアドレスで同居も可能になります。
smtpの例では、、
service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
bind = xxx.yyy.zzz.XXX
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock 。。。。。}
おしまい。。
P.S.
PSXがかなり安くヤフーのオークションで手に入るようになってきたので手に入れました。もちろんアナログ放送が終わるまでの寿命なのでしょうが、PS2ソフトも使えて250MBのHDDレコーダもあって、DVDにも書き込みできて、メモリースティックも利用でき、BSアナログ付きで10000円ぐらいというのは安い気がします。
いま、お家はケーブルテレビなので、ケーブルテレビ局のデジタル放送電波のアナログ放送電波への変換サービスが利用できるだろうし、あと5年くらいは使えそうです。
でも、postfixやsendmailな状態も楽しみたい人も多かったりして追加したくなる場合があります。
IPアドレスはネットワーク設定で簡単に追加できます。ただ、Pleskのqmailシステムはxinetd経由でqmailが呼び出されます。
service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock 。。。。。}
という感じです。
ただこのままだとIPエイリアスで追加したIPアドレスもListenされてしまってほかのサーバソフトウェアで利用できません。
どうも、xinetdの設定を変更しないといけないようです。
xinetd.confのドキュメントを見ると、
bind = xxx.yyy.zzz.XXX
bindでIPアドレス宣言をサービス宣言(smtp, smtps, submission)に入れると、設定したIPアドレスのみSMTPをListenするようになって、ほかのSMTPサーバを別IPアドレスで同居も可能になります。
smtpの例では、、
service smtp
{
socket_type = stream
protocol = tcp
wait = no
disable = no
user = root
instances = UNLIMITED
env = SMTPAUTH=1
bind = xxx.yyy.zzz.XXX
server = /var/qmail/bin/tcp-env
server_args = -Rt0 /var/qmail/bin/relaylock 。。。。。}
おしまい。。
P.S.
PSXがかなり安くヤフーのオークションで手に入るようになってきたので手に入れました。もちろんアナログ放送が終わるまでの寿命なのでしょうが、PS2ソフトも使えて250MBのHDDレコーダもあって、DVDにも書き込みできて、メモリースティックも利用でき、BSアナログ付きで10000円ぐらいというのは安い気がします。
いま、お家はケーブルテレビなので、ケーブルテレビ局のデジタル放送電波のアナログ放送電波への変換サービスが利用できるだろうし、あと5年くらいは使えそうです。
2009年04月01日
Plesk9.0.1サーバのIPアドレスを変えたらコントロールパネルに入れなくなった。
社内のローカルアドレスでセットアップした後、サイトでグローバルアドレスにPlesk9.0.1サーバのIPアドレスを変えたらPleskコントロールパネルに入れなくなりました。
現地では、localhostアクセスで入れていたので気付かなかったのですが。。。
どうも、なんらかの影響でMySQLのPSAのデータベースと現実のネットワークの設定に不整合が出ているようです。
まずは、psaデータベースのIP_Addressesテーブルを修正しました。
mysql -u admin -p`cat /etc/psa/.psa.shadow` psa
mysql> select * from IP_Addresses;
mysql> update IP_Addresses SET ip_address='新しいIPアドレス' where id=1;
mysql> update IP_Addresses SET mask='新しいマスク' where id=1;
あと、
miscテーブルに、FullHostNameを見つけました。
update misc SET val='新しいIPアドレス' where param = 'FullHostName';
どうでしょう。。。う〜ん
上の方のメインのフレームが出るのですがSSO(シングルサインオン)するためのウィンドウの呼び出しURLが、localhost.localdomainになってしまっています。
どうもSSO周りの設定がおかしくなっているようです。
お。見つけました。psaデータベースのmiscテーブルに、
mysql> select * from misc;
......
| sso_relay | https://localhost.localdomain:11444 |
| sso_server | https://localhost.localdomain:11443 |
| sso_server_user_url | https://localhost.localdomain:11444 |
です。
これもアップデートしてみました。
update misc SET val='https://新しいアドレス:11444' where param = 'sso_relay';
。。。。
お!やっとログインできました。やっと一段落できたと思ったら、今度はログアウトがエラー(localhost.localdomainになって)できません。
面倒なので、今の時点ではMySQLAdminが動くのでこれでpsaデータベースをSQLでバックアップして、localhost.localdomainを秀丸で検索してみました。
あった、ありました。
INSERT INTO `dns_recs` (`id`, `dns_zone_id`, `type`, `displayHost`, `host`, `displayVal`, `val`, `opt`, `time_stamp`) VALUES (5, 1, 'PTR', 'ローカルアドレス', 'ローカルアドスス', 'localhost.localdomain.', 'localhost.localdomain.', '24', '2009-04-01 11:12:21');
という部分です。
dns_recsのローカルアドレスの部分を新しいアドレスに変更しました。(最初、あっさり削除したのですが、確かにログアウトできたのですが、そのタイミングでMySQLAdminがログインできなくなりました。どうもこの部分で@ホスト名を決めていたようです。変更するのが正しい姿のようです。)
ふう。。。無事、ログアウトもできるようになりました。
めでたしめでたし。。。
P.S.LPICのレベル3をあと少しというところで落としてしまいました。やはり時間不足は否めなかった感じです。「撤退する勇気」をもって日にちを変えるべきでした。三〇〇〇〇円は痛いなあ〜。。。そういえば給付金が出るらしいなあ〜これだ!と今は思っています。その点マイクロソフトのセカンドショットキャンペーンは羨ましいです。。。
現地では、localhostアクセスで入れていたので気付かなかったのですが。。。
どうも、なんらかの影響でMySQLのPSAのデータベースと現実のネットワークの設定に不整合が出ているようです。
まずは、psaデータベースのIP_Addressesテーブルを修正しました。
mysql -u admin -p`cat /etc/psa/.psa.shadow` psa
mysql> select * from IP_Addresses;
mysql> update IP_Addresses SET ip_address='新しいIPアドレス' where id=1;
mysql> update IP_Addresses SET mask='新しいマスク' where id=1;
あと、
miscテーブルに、FullHostNameを見つけました。
update misc SET val='新しいIPアドレス' where param = 'FullHostName';
どうでしょう。。。う〜ん
上の方のメインのフレームが出るのですがSSO(シングルサインオン)するためのウィンドウの呼び出しURLが、localhost.localdomainになってしまっています。
どうもSSO周りの設定がおかしくなっているようです。
お。見つけました。psaデータベースのmiscテーブルに、
mysql> select * from misc;
......
| sso_relay | https://localhost.localdomain:11444 |
| sso_server | https://localhost.localdomain:11443 |
| sso_server_user_url | https://localhost.localdomain:11444 |
です。
これもアップデートしてみました。
update misc SET val='https://新しいアドレス:11444' where param = 'sso_relay';
。。。。
お!やっとログインできました。やっと一段落できたと思ったら、今度はログアウトがエラー(localhost.localdomainになって)できません。
面倒なので、今の時点ではMySQLAdminが動くのでこれでpsaデータベースをSQLでバックアップして、localhost.localdomainを秀丸で検索してみました。
あった、ありました。
INSERT INTO `dns_recs` (`id`, `dns_zone_id`, `type`, `displayHost`, `host`, `displayVal`, `val`, `opt`, `time_stamp`) VALUES (5, 1, 'PTR', 'ローカルアドレス', 'ローカルアドスス', 'localhost.localdomain.', 'localhost.localdomain.', '24', '2009-04-01 11:12:21');
という部分です。
dns_recsのローカルアドレスの部分を新しいアドレスに変更しました。(最初、あっさり削除したのですが、確かにログアウトできたのですが、そのタイミングでMySQLAdminがログインできなくなりました。どうもこの部分で@ホスト名を決めていたようです。変更するのが正しい姿のようです。)
ふう。。。無事、ログアウトもできるようになりました。
めでたしめでたし。。。
P.S.LPICのレベル3をあと少しというところで落としてしまいました。やはり時間不足は否めなかった感じです。「撤退する勇気」をもって日にちを変えるべきでした。三〇〇〇〇円は痛いなあ〜。。。そういえば給付金が出るらしいなあ〜これだ!と今は思っています。その点マイクロソフトのセカンドショットキャンペーンは羨ましいです。。。
2009年03月16日
PleskでSSH/SCPを許してもらえない場合のホスティング環境でEC-CUBEは大変です。
SSH/SCPのないホスティング環境でEC-CUBEは大変です。
なにせ、インストールのチェックプログラムを起動した後、エラーメッセージを加工して、300以上のパーミッションをFTPのコマンドで変えなければなりません。FTPのバッチで変更するというものですが、ちょっと大変です。
EC-CUBEは日本のソフトウェアなのでPleskのアプリケーションボルトにはいっては来ないだろうし・・・
アプリケーションボルト!そうだ、アプリケーションボルトのパッケージをEC-CUBE用でつくればSSHのない環境でホスティングしている方々も簡単にみんな入れられるようになるはずです。
アプリケーションボルトのパッケージは、/usr/local/psa/var/apspkgdist にありました。
ためしに、WebShopmanager-2.0-31.app.zipを解凍してみると、
# ls -l test
total 16
-rw-r--r-- 1 root root 2623 Apr 9 2008 APP-META.xml
drwxr-xr-x 5 root root 4096 Apr 9 2008 htdocs
drwxr-xr-x 2 root root 4096 Apr 9 2008 images
drwxr-xr-x 2 root root 4096 Apr 9 2008 scripts
という構造になっていて、これを準備すれば良さそうです。
APP-META.xmlをふくめこの構造は、www.apsstandard.orgにありました。
時間のある時に、見ながら作ってみようかなあ〜
P.S.今週木曜日にLPICのレベル3のCOREを受ける予定です。でも、なかなか進んでいないのが実情です。でも、三月末はプロメトリック試験場も、スケジュール画面はほとんど真赤で、かなり埋まっています。会社のスケジュールも含め、あまりスケジュールも変えられそうにないので残った時間頑張るしかないようです。
あ、LPIC主催の講習会の資料が、講習会の先生だったOSS TECHさんのページにPDFが載っているのに気付きました。前回、Coreと間違って受けてしまったSambaの講習会資料も、前回のCoreの講習会資料も掲載してくれています。
嬉しいです。これをちゃんと見ていきたいと思います。ただ、実際のSamba講習会で話される内容はそれ以上の内容があったので、実際にCoreの講習会にいかれた方に追いつけるとは思えませんが少しでも追いつければ嬉しいです。
なにせ、インストールのチェックプログラムを起動した後、エラーメッセージを加工して、300以上のパーミッションをFTPのコマンドで変えなければなりません。FTPのバッチで変更するというものですが、ちょっと大変です。
EC-CUBEは日本のソフトウェアなのでPleskのアプリケーションボルトにはいっては来ないだろうし・・・
アプリケーションボルト!そうだ、アプリケーションボルトのパッケージをEC-CUBE用でつくればSSHのない環境でホスティングしている方々も簡単にみんな入れられるようになるはずです。
アプリケーションボルトのパッケージは、/usr/local/psa/var/apspkgdist にありました。
ためしに、WebShopmanager-2.0-31.app.zipを解凍してみると、
# ls -l test
total 16
-rw-r--r-- 1 root root 2623 Apr 9 2008 APP-META.xml
drwxr-xr-x 5 root root 4096 Apr 9 2008 htdocs
drwxr-xr-x 2 root root 4096 Apr 9 2008 images
drwxr-xr-x 2 root root 4096 Apr 9 2008 scripts
という構造になっていて、これを準備すれば良さそうです。
APP-META.xmlをふくめこの構造は、www.apsstandard.orgにありました。
時間のある時に、見ながら作ってみようかなあ〜
P.S.今週木曜日にLPICのレベル3のCOREを受ける予定です。でも、なかなか進んでいないのが実情です。でも、三月末はプロメトリック試験場も、スケジュール画面はほとんど真赤で、かなり埋まっています。会社のスケジュールも含め、あまりスケジュールも変えられそうにないので残った時間頑張るしかないようです。
あ、LPIC主催の講習会の資料が、講習会の先生だったOSS TECHさんのページにPDFが載っているのに気付きました。前回、Coreと間違って受けてしまったSambaの講習会資料も、前回のCoreの講習会資料も掲載してくれています。
嬉しいです。これをちゃんと見ていきたいと思います。ただ、実際のSamba講習会で話される内容はそれ以上の内容があったので、実際にCoreの講習会にいかれた方に追いつけるとは思えませんが少しでも追いつければ嬉しいです。
2009年03月03日
Hyper-VにRedhat ES4(update7)とES5(5.3)で動作を確認してみました。
Hyper-VにRedhatで今ダウンロードできるES4(update7)とES5(5.3)のDVDでLinuxを入れてみました。
ES4もES5もHYPER−Vの設定上ではネットワークインターフェースにレガシーネットワークを使っています。(新規ー>仮想マシンの画面では選べないので、設定画面でハードウェア追加選んでレガシーネットワークアダプタを追加)
ES4(Upfate7/2.6.9-78)は、最初インストーラがスムーズに進みますが、インストール中のXの起動画面から崩れ始めてしまいます。linux textでテキストモードでインストールします。インストール後の起動もいまいち画面が崩れて使えないので、再度DVDでlinux rescueで起動してchroot後、/etc/inittabでinitdefaultのところを3のFull multiuser modeして,chroot環境をexitで抜けて再起動すればテキストモードで上がって利用できます。まあ、Xの画面はあまり必要としていなくてSSHとコンソールがあればそれでいい人はES4で十分かも・・・
ES5(5.3/2.6.18-128)のDVDは、特にインストール・再起動も問題なく進んで動きいてしまいました。
ES4は今後もREDHAT/Microsoftともにサポート予定もないようだし、ES5の正式サポートは今年の後半らしいので実稼働マシンには使いずらいですが、Windows環境をベースにLinux勉強中の方はレッドハットの方がSUSEよりも使い勝手がいいかもしれませんね。。(インストールDVDのダウンロード時間が1時間を楽に着るREDHATサイトの高速性も見逃せませんし!!!)
Red Hat Enterprise Linux Evaluation Programもあるのでちゃんと1ヶ月間はアップデートもできます。
もともとREDHATを扱うことが多かった(DELLのプレインストール版を使うことが多かった)のでSUSEよりとてもしっくりきます。。
今月半ば過ぎにはLPICのレベル3のコア「301 Core Exam」を受ける予定です。
頑張らねば。。ジョージアでゲットした楽天ポイントは、すべて楽天でのバウチャ購入代に消えてしまいます。。。
楽天LPICレベル3チケット
ES4もES5もHYPER−Vの設定上ではネットワークインターフェースにレガシーネットワークを使っています。(新規ー>仮想マシンの画面では選べないので、設定画面でハードウェア追加選んでレガシーネットワークアダプタを追加)
ES4(Upfate7/2.6.9-78)は、最初インストーラがスムーズに進みますが、インストール中のXの起動画面から崩れ始めてしまいます。linux textでテキストモードでインストールします。インストール後の起動もいまいち画面が崩れて使えないので、再度DVDでlinux rescueで起動してchroot後、/etc/inittabでinitdefaultのところを3のFull multiuser modeして,chroot環境をexitで抜けて再起動すればテキストモードで上がって利用できます。まあ、Xの画面はあまり必要としていなくてSSHとコンソールがあればそれでいい人はES4で十分かも・・・
ES5(5.3/2.6.18-128)のDVDは、特にインストール・再起動も問題なく進んで動きいてしまいました。
ES4は今後もREDHAT/Microsoftともにサポート予定もないようだし、ES5の正式サポートは今年の後半らしいので実稼働マシンには使いずらいですが、Windows環境をベースにLinux勉強中の方はレッドハットの方がSUSEよりも使い勝手がいいかもしれませんね。。(インストールDVDのダウンロード時間が1時間を楽に着るREDHATサイトの高速性も見逃せませんし!!!)
Red Hat Enterprise Linux Evaluation Programもあるのでちゃんと1ヶ月間はアップデートもできます。
もともとREDHATを扱うことが多かった(DELLのプレインストール版を使うことが多かった)のでSUSEよりとてもしっくりきます。。
今月半ば過ぎにはLPICのレベル3のコア「301 Core Exam」を受ける予定です。
頑張らねば。。ジョージアでゲットした楽天ポイントは、すべて楽天でのバウチャ購入代に消えてしまいます。。。
楽天LPICレベル3チケット
2009年03月02日
PleskでSSL証明書がデフォルトのSSL証明書から変更できない・・・
Plesk9でインストール前からそのサーバのホスト名に使っているホストのSSL証明書設定がデフォルト自己証明書のまま、変更できず、新たに登録した証明書の選択すらできませんでした。
あれれ・・・こまったなあ〜と考え込んでいたのですが、たぶん、一個目のドメインの場合の制限かもしれません。(WEB検索してみると、昔のバージョンからこの仕様は残っているので、Pleskを試用版[1ドメイン・1メールアドレス]で使っている人へのちょっとした牽制かもしれませんね。。)
mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -e"update IP_Addresses set default_domain_id = null where ip_address = 'IPADDRESS'"
というのが、SWSOFTのページにありました。
でも、せっかくmysqladminがあるのだからこちらでpsaデータベースのip_addressテーブル変えた方が速そうですよね。。。
P.S.ジョージアのコーヒーのポイントプログラムの30秒に一人楽天ポイント(500ポイント)が当たるという1ポイントで申し込める懸賞にひたすら申し込んでいます。いま、86回挑戦で4回あたりました。当たる間隔は、26回目・51回目・79回目・84回目って感じです。25回に一回+ランダムで当たっている感じです。25回に一回は当たるとすると、ジョージアのシール一枚当たり20円相当の価値がある気がします。
学校でベルマーク集めるより、ジョージアのシールを各家庭で集めて申し込んだ方が結構いいもの買えるかも・・・

さらに追伸)3/3 今日も当たりが出ました。91回で当たり5回!!!なにかこの一週間ぐらいで当選確率がかなり上がってきている
あれれ・・・こまったなあ〜と考え込んでいたのですが、たぶん、一個目のドメインの場合の制限かもしれません。(WEB検索してみると、昔のバージョンからこの仕様は残っているので、Pleskを試用版[1ドメイン・1メールアドレス]で使っている人へのちょっとした牽制かもしれませんね。。)
mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -e"update IP_Addresses set default_domain_id = null where ip_address = 'IPADDRESS'"
というのが、SWSOFTのページにありました。
でも、せっかくmysqladminがあるのだからこちらでpsaデータベースのip_addressテーブル変えた方が速そうですよね。。。
P.S.ジョージアのコーヒーのポイントプログラムの30秒に一人楽天ポイント(500ポイント)が当たるという1ポイントで申し込める懸賞にひたすら申し込んでいます。いま、86回挑戦で4回あたりました。当たる間隔は、26回目・51回目・79回目・84回目って感じです。25回に一回+ランダムで当たっている感じです。25回に一回は当たるとすると、ジョージアのシール一枚当たり20円相当の価値がある気がします。
学校でベルマーク集めるより、ジョージアのシールを各家庭で集めて申し込んだ方が結構いいもの買えるかも・・・
さらに追伸)3/3 今日も当たりが出ました。91回で当たり5回!!!なにかこの一週間ぐらいで当選確率がかなり上がってきている
2009年02月25日
RedHat ES4のルートパーティションをresize2fsしようっと・・
Redhat ES4のロジカルボリューム(LVM)のルートパーティションが狭くなってきたので、増設したHDD分をルートパーティションに追加しようとしました。
fdiskでパーティションを切って、pvcreateして、vgextendでルートパーティションの属しているVG(VolGroup00)を拡張して、lvextendでロジカルボリュームを拡張しました。
ふう。あとは、CDでrescueモード(CD起動時にlinux rescueをいれて)起動して、englishのままでOKと。。。キーボードはJP106を選んで、mountは、mount情報が一瞬見えればOKだし、read onlyを選んで起動しました。
さてumount しようとすると、 /mnt/sysimage/bootと /mnt/sysimage/devはumountできましたが、 /mnt/sysimageがumountできません。使用中らしいです。。
ふむうう・・・こまった。mount情報見てもとくに使用中には見えないのだけれども。。。
仕方なく、mount無しでrescueモードで起動しました。
でも、VG他が利用可能になっていないようで/dev/にデバイスが見当たりません。
あちこち検索したところ、IBMさんのページでルートパーティションのLVMのバックアップとリストアを発見しました。
-------------------------------------------------------
VG情報を認識させます。
# lvm vgscan
VGをアクティブ状態にします。
# lvm vgchange -a y VolGroup00
全てのLVがアクティブであることを確認します。
# lvmlvdisplay
-------------------------------------------------------
これでOKでした。
e2fsckでファイルシステムをチェックして、resize2fsで拡張できました。。。
上のIBMさんの資料はこの場合に関係なくとてもいい資料ですよね。。
よく読んでいざという時や、システムのバックアップ等のテクニックとして十分活用しましょう!
おしまい。
fdiskでパーティションを切って、pvcreateして、vgextendでルートパーティションの属しているVG(VolGroup00)を拡張して、lvextendでロジカルボリュームを拡張しました。
ふう。あとは、CDでrescueモード(CD起動時にlinux rescueをいれて)起動して、englishのままでOKと。。。キーボードはJP106を選んで、mountは、mount情報が一瞬見えればOKだし、read onlyを選んで起動しました。
さてumount しようとすると、 /mnt/sysimage/bootと /mnt/sysimage/devはumountできましたが、 /mnt/sysimageがumountできません。使用中らしいです。。
ふむうう・・・こまった。mount情報見てもとくに使用中には見えないのだけれども。。。
仕方なく、mount無しでrescueモードで起動しました。
でも、VG他が利用可能になっていないようで/dev/にデバイスが見当たりません。
あちこち検索したところ、IBMさんのページでルートパーティションのLVMのバックアップとリストアを発見しました。
-------------------------------------------------------
VG情報を認識させます。
# lvm vgscan
VGをアクティブ状態にします。
# lvm vgchange -a y VolGroup00
全てのLVがアクティブであることを確認します。
# lvmlvdisplay
-------------------------------------------------------
これでOKでした。
e2fsckでファイルシステムをチェックして、resize2fsで拡張できました。。。
上のIBMさんの資料はこの場合に関係なくとてもいい資料ですよね。。
よく読んでいざという時や、システムのバックアップ等のテクニックとして十分活用しましょう!
おしまい。
2009年02月12日
WordPressのファイルのアップロードで「xxxxx.zip 却下 このファイルは大きすぎます。」
ヤフオクで買ったHP DL360G3(XeonCPU2.80GHzx2/4GBMem/RAID1-36G)にLinuxとPlesk8.6とWordPress2.7(ブログ)をいれてお勉強しています。
WordPressにはメディア画面でFlash アップローダが使われていていました。
ちょうど8Mバイトほどのファイルをアップロードしようとすると、
xxxxx.zip却下このファイルは大きすぎます。php.ini で設定されている upload_max_filesize は 20M です。
と言ってきます。ふむ、根本的に宣言サイズ20Mバイトよりアップロードしようとしたファイルサイズがかなり小さいのに「大きすぎます」と言ってエラーが出ています。たぶんWordPress2.7がエラーの検出時に適切でないメッセージを出していないようです。
まあ、仕方ないとapacheのエラーログをPleskのlogfileviewerで見てみると、、
[client xx.xx.xx.xx] PHP Warning: POST Content-Length of 8769591 bytes exceeds the limit of 8388608 bytes in Unknown on line 0, referer: http://どっか.どっかの.jp/xxxx/wp-admin/media-new.php?flash=0
どうもPOSTサイズ制限に引っ掛かっているようです。
post_max_size = 20M
PleskでHTTPサーバの再起動してアップロードできるようになりました。でも、本当のところはPOSTサイズを大きくしてそのままでおいておくと攻撃される要因になるんでしょうね。。気をつけないと。。。
P.S.日本語版のWordPressのコンテンツとして表示されるHTMLの出力を変更したくてphpのプログラムを編集するのですが、PHPの各モジュールは英語表記のままで、出力される最後に日本語に置き換えされているようで変更したい行を探すのに日本語のキーワードだけだと手こずる場合があります。別にサブディレクトリ切って、英語版のままのWordPressをあげておいて、2つを見比べしながら変更していくと楽に編集が終わりそうです。でも、いろんなブラグインもあってWordPressは結構楽しいです。
WordPressにはメディア画面でFlash アップローダが使われていていました。
ちょうど8Mバイトほどのファイルをアップロードしようとすると、
xxxxx.zip却下このファイルは大きすぎます。php.ini で設定されている upload_max_filesize は 20M です。
と言ってきます。ふむ、根本的に宣言サイズ20Mバイトよりアップロードしようとしたファイルサイズがかなり小さいのに「大きすぎます」と言ってエラーが出ています。たぶんWordPress2.7がエラーの検出時に適切でないメッセージを出していないようです。
まあ、仕方ないとapacheのエラーログをPleskのlogfileviewerで見てみると、、
[client xx.xx.xx.xx] PHP Warning: POST Content-Length of 8769591 bytes exceeds the limit of 8388608 bytes in Unknown on line 0, referer: http://どっか.どっかの.jp/xxxx/wp-admin/media-new.php?flash=0
どうもPOSTサイズ制限に引っ掛かっているようです。
post_max_size = 20M
PleskでHTTPサーバの再起動してアップロードできるようになりました。でも、本当のところはPOSTサイズを大きくしてそのままでおいておくと攻撃される要因になるんでしょうね。。気をつけないと。。。
P.S.日本語版のWordPressのコンテンツとして表示されるHTMLの出力を変更したくてphpのプログラムを編集するのですが、PHPの各モジュールは英語表記のままで、出力される最後に日本語に置き換えされているようで変更したい行を探すのに日本語のキーワードだけだと手こずる場合があります。別にサブディレクトリ切って、英語版のままのWordPressをあげておいて、2つを見比べしながら変更していくと楽に編集が終わりそうです。でも、いろんなブラグインもあってWordPressは結構楽しいです。
2009年02月04日
Redhat ES4 のupdate4のメディアセットを使ったら変なエラー・・
ちょうど手元に最新のRedhatES4のメディアセットがなかったのでごそごそ机の中を探っていたらupdate4の昔焼いたCD-Rセットが出てきました。
まあ、今回のシステムは中古のPowerEdge860だし、これでいいかと思ってインストールを始めました。
インストールはeverythingを選択して全部インストールです。
さて、インストール終わってupdateを行うとなんか変なエラーがでてup2dateが止まってしまいます。
Unresolvable chain of dependencies:
perftest 1.0-1 requires kernel-ib
tvflash 0.9.0-1 requires kernel-ib
mstflint 1.0-1 requires kernel-ib
The following packages were added to your selection to satisfy dependencies:
Package Required by
----------------------------------------------------------------------------
lam-libs-7.1.2-15.el4.i386 lam-7.1.2-15.el4 libmpi.so.0
だそうです。。”requires kernel-ib”というところが実に気持ち悪いです。
たぶん、requires kernel-libのはずだったのが、壊れたrpmの情報が入ったパッケージが入ってしまっているようです。
# rom -e perftest-1.0-1 tvflash-0.9.0-1 mstflint-1.0-1
をしたらup2dateできるようになりました。
ちゃんと最新のupdateのDiskを使えば悩まなかったのになあ〜〜〜
まあ、今回のシステムは中古のPowerEdge860だし、これでいいかと思ってインストールを始めました。
インストールはeverythingを選択して全部インストールです。
さて、インストール終わってupdateを行うとなんか変なエラーがでてup2dateが止まってしまいます。
Unresolvable chain of dependencies:
perftest 1.0-1 requires kernel-ib
tvflash 0.9.0-1 requires kernel-ib
mstflint 1.0-1 requires kernel-ib
The following packages were added to your selection to satisfy dependencies:
Package Required by
----------------------------------------------------------------------------
lam-libs-7.1.2-15.el4.i386 lam-7.1.2-15.el4 libmpi.so.0
だそうです。。”requires kernel-ib”というところが実に気持ち悪いです。
たぶん、requires kernel-libのはずだったのが、壊れたrpmの情報が入ったパッケージが入ってしまっているようです。
# rom -e perftest-1.0-1 tvflash-0.9.0-1 mstflint-1.0-1
をしたらup2dateできるようになりました。
ちゃんと最新のupdateのDiskを使えば悩まなかったのになあ〜〜〜
2009年01月28日
PleskサーバでFTPレポジトリをつかって全体バックアップ
pleskbackupコマンドがどうもFTPレポジトリも扱えるので(まあ、WEBの管理画面からはクライアント・ドメイン毎のバックアップにFTPレポジトリを使用してのバックアップがあるのだから当然なのかも知れませんが。。)これでほかのFTPサーバへバックアップを行うことにしました。
実施には多くのトラフィックが基幹ルータに負荷をかけないようにPleskサーバと同じネットワークにFTPサーバのネットワークを追加し、準備終了です。
まずは、腰だめに、、、
/usr/local/psa/bin/pleskbackup -s all ftp://backup@xxx.yyy.zzz.111/
と実行してみました。(-s は、サイズ指定で、デフォルトで2Gバイトに分けてくれるはずです。)
Unable to parse options: Bad FTP file format at /usr/local/psa/bin/pleskbackup line 287.
う〜〜ん。どうもちゃんとバックアップファイル名までいれないとだめみたいです。ちなみに、ドメインやクライアントの場合は、. が入っていました。
/usr/local/psa/bin/pleskbackup -s all ftp://backup@xxx.yyy.zzz.111/.
とすると、
Runtime error: Unable to create output file '/tmp/.': Is a directory at /usr/local/psa/PMM/agents/shared/Storage/Splitter.pm line 74.
gzip: stdout: Broken pipe
backup_sign: Error writing dump to file
System error 32: Broken pipe
Runtime error: Broken pipe at /usr/local/psa/PMM/agents/shared/MIME/Lite.pm line 2249.
Bad file descriptor: dup2( 13, 5 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
Bad file descriptor: dup2( 13, 5 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
Bad file descriptor: dup2( 10, 0 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131 at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131.
01:23:26 ERROR Failed to create MIME message
とかなり激しいエラーになりました。見ると/tmpに、
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2AXabb
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2CkJaT
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2Fak2u
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2IDte5
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2JlTSm
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2Lfnfm
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2M0Rrd
というファイルがいっぱいできて掃除もされず異常終了しています。どうもバックアップファイル名にデフォルト値のようなものがコマンドラインベースで実行するとないため変な動きになるようです。
/usr/local/psa/bin/pleskbackup -s all \ ftp://backup@xxx.yyy.zzz.111/backupall_PLESK
とまで入れて実行すると動作を始めました。
/tmp/に
-rw-r--r-- 1 root root 2146435072 Jan 28 10:57 backupall_PLESK
-rw-r--r-- 1 root root 2146435072 Jan 28 11:15 backupall_PLESK.001
-rw-r--r-- 1 root root 658272256 Jan 28 11:18 backupall_PLESK.002
と作られていきます。
どうも全部作られてからFTPで送られるのでしょうね。。つまり、全体バックアップを/tmpに一度作ってからFTP送信する形なので、/tmpに今のバックアップ容量が確保できるか要確認です。
ちなみに、/usr/local/psa/bin/pleskbackup は
$ file /usr/local/psa/bin/pleskbackup
/usr/local/psa/bin/pleskbackup: perl script text executable
とviなどで確認できて、
$ftp{'server'} = $3;
$ftp{'path'} = $4;
$ftp{'file'} = $5;
$res{'backup-file'} = "/tmp/$5";
という部分があるのでこのあたりをシステムに合わせて変更すればいけそうな気がしますがまだ試していません。
まあ、これでサーバ外にアーカイブを持って行けてRAID全体が吹っ飛んでも安心です。
あとはバッチ用のスクリプトの作成です。パスワードを環境変数FTP_PASSWORDにセットして・・・あとumaskも0022から0066に変えておいた方が良さそうです。
P.S.サンプルのバックアップのスクリプトを確認しようとしてクライアントにバックアップスケジュールを仕込んでcron関連のファイルを見たのですが見つかりませんでした。MySQLのpsaデータベースにはテーブルはあるんだけどどこでキックされているのかなあ〜〜〜。。
実施には多くのトラフィックが基幹ルータに負荷をかけないようにPleskサーバと同じネットワークにFTPサーバのネットワークを追加し、準備終了です。
まずは、腰だめに、、、
/usr/local/psa/bin/pleskbackup -s all ftp://backup@xxx.yyy.zzz.111/
と実行してみました。(-s は、サイズ指定で、デフォルトで2Gバイトに分けてくれるはずです。)
Unable to parse options: Bad FTP file format at /usr/local/psa/bin/pleskbackup line 287.
う〜〜ん。どうもちゃんとバックアップファイル名までいれないとだめみたいです。ちなみに、ドメインやクライアントの場合は、. が入っていました。
/usr/local/psa/bin/pleskbackup -s all ftp://backup@xxx.yyy.zzz.111/.
とすると、
Runtime error: Unable to create output file '/tmp/.': Is a directory at /usr/local/psa/PMM/agents/shared/Storage/Splitter.pm line 74.
gzip: stdout: Broken pipe
backup_sign: Error writing dump to file
System error 32: Broken pipe
Runtime error: Broken pipe at /usr/local/psa/PMM/agents/shared/MIME/Lite.pm line 2249.
Bad file descriptor: dup2( 13, 5 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
Bad file descriptor: dup2( 13, 5 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131
Bad file descriptor: dup2( 10, 0 ) at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131 at /usr/local/psa/PMM/agents/shared/Storage/MimeStorage.pm line 131.
01:23:26 ERROR Failed to create MIME message
とかなり激しいエラーになりました。見ると/tmpに、
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2AXabb
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2CkJaT
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2Fak2u
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2IDte5
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2JlTSm
-rw-r--r-- 1 root root 0 Jan 28 10:22 file2Lfnfm
-rw-r--r-- 1 root root 0 Jan 28 10:02 file2M0Rrd
というファイルがいっぱいできて掃除もされず異常終了しています。どうもバックアップファイル名にデフォルト値のようなものがコマンドラインベースで実行するとないため変な動きになるようです。
/usr/local/psa/bin/pleskbackup -s all \ ftp://backup@xxx.yyy.zzz.111/backupall_PLESK
とまで入れて実行すると動作を始めました。
/tmp/に
-rw-r--r-- 1 root root 2146435072 Jan 28 10:57 backupall_PLESK
-rw-r--r-- 1 root root 2146435072 Jan 28 11:15 backupall_PLESK.001
-rw-r--r-- 1 root root 658272256 Jan 28 11:18 backupall_PLESK.002
と作られていきます。
どうも全部作られてからFTPで送られるのでしょうね。。つまり、全体バックアップを/tmpに一度作ってからFTP送信する形なので、/tmpに今のバックアップ容量が確保できるか要確認です。
ちなみに、/usr/local/psa/bin/pleskbackup は
$ file /usr/local/psa/bin/pleskbackup
/usr/local/psa/bin/pleskbackup: perl script text executable
とviなどで確認できて、
$ftp{'server'} = $3;
$ftp{'path'} = $4;
$ftp{'file'} = $5;
$res{'backup-file'} = "/tmp/$5";
という部分があるのでこのあたりをシステムに合わせて変更すればいけそうな気がしますがまだ試していません。
まあ、これでサーバ外にアーカイブを持って行けてRAID全体が吹っ飛んでも安心です。
あとはバッチ用のスクリプトの作成です。パスワードを環境変数FTP_PASSWORDにセットして・・・あとumaskも0022から0066に変えておいた方が良さそうです。
P.S.サンプルのバックアップのスクリプトを確認しようとしてクライアントにバックアップスケジュールを仕込んでcron関連のファイルを見たのですが見つかりませんでした。MySQLのpsaデータベースにはテーブルはあるんだけどどこでキックされているのかなあ〜〜〜。。
2009年01月21日
Pleskサーババックアップの考察
PleskのサーバでPlesk全体バックアップを行う場合、pleskbackup というコマンドを使います。
全体バックアップができるのはいいけど、部分的なリストアなどの情報がHelpにはあまり出てきません。
でも、
# /usr/local/psa/bin/pleskbackup --help
Usage: pleskbackup [<global-options>] <command> [<local-options>] <arguments>
<output-file>
Global options:
-v|--verbose
Show more information about backup process. Multiple -v
options increase verbosity.
-c|--configuration
Backup only configuration of objects, not the content.
-s|--split[=<size>]
Split the generated backups to the parts. Parts are numbered
by appending .NNN suffixes, starting with .001.
Size may be specified in kilobytes (<nn>K), megabytes (<nn>M)
and gigabytes (<nn>G).
'-s' option without argument selects default split size:
2 gigabytes.
-z|--no-gzip Do not compress backup file
Commands:
all Backs up whole Plesk.
clients Backs up selected clients. Clients are read from command line,
space-separated. If no clients provided, backs up all clients
on the host.
domains Backs up selected domains. Domains are read from command line,
space-separated. If no domains provided, backs up all domains
on the host.
Options --exclude and --exclude-file may be specified for
excluding some clients/domains.
help Shows this help page
Local options:
-f|--from-file=<file>
Read list of domains/clients from file, not from command line.
File should contain list of domains/clients one per line.
--exclude=<obj1>,<obj2>,...
Excludes listed domains/clients from backup list.
--exclude-file=<file>
Excludes domains/clients listed in file from backup list.
File should contain list of domains/clients one per line.
--skip-logs Do not save log files in the backup file
Output file:
/fullpath/filename - regular file,
- - use stdout for output,
ftp://[<login>[:<password>]@]<server>/<filepath> - storing the backup to ftp server.
FTP_PASSWORD environment variable can be used for setting password.
と、--helpが使えていろいろな機能があることがわかりました。とくに--splitによるファイルの分割や、ファイル名にftp://を使うことでFTPサーバにバックアップファイルを持って行けることがわかりました。
この二つはありがたいですよね。もちろんFTPを使わずNFSなんかでファイルサーバ側に持っていくのもいいですがFTPなら既存のFTPを上げているサーバに持って行けます。それに、--splitは、ファイルサイズを小さくすることで扱いにくい超巨大なファイル(TBクラス)の扱いを避けることができます。
またFTPは環境変数にパスワードを設定することでバックアップ中にCGIでPSコマンドでFTPのバックアップアカウントのパスワードを見られてしまうような失敗を防ぐこともできます。
ちなみに、
リストア側のコマンドにも--helpもあります。
# /usr/local/psa/bin/pleskrestore --help
Usage: pleskrestore <command> [options]
Available commands:
--create-map <backup_file> Create map file template, to be used
with the backup file.
--validate-map <map_file | - > Check the provided map file for
correctness (may read from stdin).
--restore <backup_file> Restore backup file (requires
appropriate map file)
--check-backup <backup_file> Check backup file integrity
--info or -i <backup_file> Show description about backup file
--help or -h Displays this help page.
--man or -m Detailed help with examples.
Available options:
-level <clients | domains | server>
Specifies restoring level: restore
clients from backup, domains from
backup or server-wide backup.
-filter <file | - | list:item1[,...]>
Specifies domains or clients list for
restore. List may be read from file,
stdin or specified as an option
parameter in a comma-separated list.
-map <map_file> Map file for 'create-map' and
'restore' commands.
-license Enables restore of Plesk license key.
-quiet Enables quiet restore mode.
-verbose Enables verbose restore mode.
-debug Enables debug restore mode.
-nowarning Do not display warning message on
-level server.
が、さらに、さらに、、--man というマニュアルモードもあって、
# /usr/local/psa/bin/pleskrestore --man
WARNING! Please note, that restore of objects brings their state to EXACTLY
that one, which was saved in backup.
Restore of Plesk backup file consists of 3 steps:
* Map file creation
* Map file modifications
* Restore of selected entities
Map file creation
To restore backup file made by Plesk Backup Manager from command line you
need to create a transformation rules (the map file), to address possible
conficts of information in backup file and actual system state.
Example command to prepare the map file:
pleskrestore --create-map <backup_file> -map <resulting_map>
After command complete - look at the map file it produced.
Editing map files
Map file consists of several global sections and individual sections for
each object, which is a subject for restore. There are following global
sections:
[server-settings]
Optional section. Available server configuration parameters are listed here.
If you don't want to restore given parameter - just erase it or comment it
out.
[db-servers]
Optional section. It summarize characteristics of remote and local database
servers, used to host databases from backup file. You may map them to your
existing database servers configuration by providing destination database
servers description. If destination database server does not registered
in Plesk - pleskrestore will attempt to register it.
Example of mappings for database servers:
[db-servers]
mysql:admin:setup@localhost:3306:default
postgresql:admin:setup@localhost:5432:default -> \
postgresql:admin:qweqwe@192.168.0.1:5432:default
First record indicates that the same MySQL server should be used for restore
of databases, which were placed on local MySQL server upon backup.
Second record tells pleskrestore to deploy databases, which were backuped
from localhost PostgreSQL server on another database server (192.168.0.1)
Please note that mapping rule should appear on a single line. In example
it's splitted to meet printing requirements.
[ip-map]
Optional section, which provides summary view of IP addresses, used in
backup, and gives you ability to change their values to the actual ones:
Example of IP map:
[ip-map]
192.168.1.1 shared -> 192.168.2.2 shared
192.168.1.2 exclusive
First record forces address 192.168.1.1 to be replaced by 192.168.2.2 for all
objects, which used it.
Second record leaves 192.168.1.2 without changes.
Individual mapping sections are created for clients and their domains.
Editing them you may override server-wide mapping rules, determined in
[ip-map] and [db-servers] sections.
Example of individual client's mapping:
[client1]
192.168.1.1 shared
192.168.1.2 exclusive -> 192.168.2.2 shared
domain1.com 192.168.1.1
You may delete or comment out from the map file individual sections for
objects, which you are not going to restore (another way of objects
selection is '-filter' option, described below)
Actually restore backup
WARNING! Please note, that restore of objects brings their state to EXACTLY
that one, which was saved in backup.
You should specify which objects you are going to restore with help of
"-level" option:
* server settings, clients and domains from the backup file ("-level server")
* clients accounts and their corresponding domains ("-level clients")
* domains from the backup file ("-level domains")
After you have map file, you may start the restore process. To select only
particular objects to restore (not the whole backup) you may utilize
"-filter" option, which allows to specify objects identifiers for the given
restore level.
For example to restore only two clients with their domains pleskrestore
invocation should be the following:
pleskrestore --restore backup.file -map map.file \
-level clients -filter list:client1,client2
Restore of several domains:
pleskrestore --restore backup.file -map map.file \
-level domains -filter list:domain1.com,domain12.com
Option "-filter" also accepts filename to read identifiers list from it (as a
newline-separated strings) or may read newline-separated identifiers from
stdin, when used as "-filter -"
-- See also --
* To extract parts of backup content (files, databases, etc) use
"backup-unpack" utility.
と説明してくれています。
--levelでフィルタのレベルを宣言して、--filterでリストア必要なユーザやドメインを選択すれば、部分的なリカバリもできるようです。
つまり、失敗してサイトコンテンツを壊してしまっても、Pleskの運営サイトによっては、たぶん実行しているであろう全体バックアップから、リカバリしてもらえる可能性を秘めているといえます。
もちろん、全体バックアップがどういうタイミングで行われているかはサイトの管理者の判断なのでそれに頼り切るのもなんですが、なんらかの失敗が重なって、DB的にリカバリ不可能な状況で最初から作り直す事態に陥るよりはサイト管理者に相談すると「蜘蛛の糸」が管理者から提供されるかもしれない期待
があるということでしょうか。。。
でも、部分リストアは管理者から見ればタイプミスでかなり良くない結果が待ち受けているだけに怖くてしたくないだろうなあ〜〜。
全体バックアップができるのはいいけど、部分的なリストアなどの情報がHelpにはあまり出てきません。
でも、
# /usr/local/psa/bin/pleskbackup --help
Usage: pleskbackup [<global-options>] <command> [<local-options>] <arguments>
<output-file>
Global options:
-v|--verbose
Show more information about backup process. Multiple -v
options increase verbosity.
-c|--configuration
Backup only configuration of objects, not the content.
-s|--split[=<size>]
Split the generated backups to the parts. Parts are numbered
by appending .NNN suffixes, starting with .001.
Size may be specified in kilobytes (<nn>K), megabytes (<nn>M)
and gigabytes (<nn>G).
'-s' option without argument selects default split size:
2 gigabytes.
-z|--no-gzip Do not compress backup file
Commands:
all Backs up whole Plesk.
clients Backs up selected clients. Clients are read from command line,
space-separated. If no clients provided, backs up all clients
on the host.
domains Backs up selected domains. Domains are read from command line,
space-separated. If no domains provided, backs up all domains
on the host.
Options --exclude and --exclude-file may be specified for
excluding some clients/domains.
help Shows this help page
Local options:
-f|--from-file=<file>
Read list of domains/clients from file, not from command line.
File should contain list of domains/clients one per line.
--exclude=<obj1>,<obj2>,...
Excludes listed domains/clients from backup list.
--exclude-file=<file>
Excludes domains/clients listed in file from backup list.
File should contain list of domains/clients one per line.
--skip-logs Do not save log files in the backup file
Output file:
/fullpath/filename - regular file,
- - use stdout for output,
ftp://[<login>[:<password>]@]<server>/<filepath> - storing the backup to ftp server.
FTP_PASSWORD environment variable can be used for setting password.
と、--helpが使えていろいろな機能があることがわかりました。とくに--splitによるファイルの分割や、ファイル名にftp://を使うことでFTPサーバにバックアップファイルを持って行けることがわかりました。
この二つはありがたいですよね。もちろんFTPを使わずNFSなんかでファイルサーバ側に持っていくのもいいですがFTPなら既存のFTPを上げているサーバに持って行けます。それに、--splitは、ファイルサイズを小さくすることで扱いにくい超巨大なファイル(TBクラス)の扱いを避けることができます。
またFTPは環境変数にパスワードを設定することでバックアップ中にCGIでPSコマンドでFTPのバックアップアカウントのパスワードを見られてしまうような失敗を防ぐこともできます。
ちなみに、
リストア側のコマンドにも--helpもあります。
# /usr/local/psa/bin/pleskrestore --help
Usage: pleskrestore <command> [options]
Available commands:
--create-map <backup_file> Create map file template, to be used
with the backup file.
--validate-map <map_file | - > Check the provided map file for
correctness (may read from stdin).
--restore <backup_file> Restore backup file (requires
appropriate map file)
--check-backup <backup_file> Check backup file integrity
--info or -i <backup_file> Show description about backup file
--help or -h Displays this help page.
--man or -m Detailed help with examples.
Available options:
-level <clients | domains | server>
Specifies restoring level: restore
clients from backup, domains from
backup or server-wide backup.
-filter <file | - | list:item1[,...]>
Specifies domains or clients list for
restore. List may be read from file,
stdin or specified as an option
parameter in a comma-separated list.
-map <map_file> Map file for 'create-map' and
'restore' commands.
-license Enables restore of Plesk license key.
-quiet Enables quiet restore mode.
-verbose Enables verbose restore mode.
-debug Enables debug restore mode.
-nowarning Do not display warning message on
-level server.
が、さらに、さらに、、--man というマニュアルモードもあって、
# /usr/local/psa/bin/pleskrestore --man
WARNING! Please note, that restore of objects brings their state to EXACTLY
that one, which was saved in backup.
Restore of Plesk backup file consists of 3 steps:
* Map file creation
* Map file modifications
* Restore of selected entities
Map file creation
To restore backup file made by Plesk Backup Manager from command line you
need to create a transformation rules (the map file), to address possible
conficts of information in backup file and actual system state.
Example command to prepare the map file:
pleskrestore --create-map <backup_file> -map <resulting_map>
After command complete - look at the map file it produced.
Editing map files
Map file consists of several global sections and individual sections for
each object, which is a subject for restore. There are following global
sections:
[server-settings]
Optional section. Available server configuration parameters are listed here.
If you don't want to restore given parameter - just erase it or comment it
out.
[db-servers]
Optional section. It summarize characteristics of remote and local database
servers, used to host databases from backup file. You may map them to your
existing database servers configuration by providing destination database
servers description. If destination database server does not registered
in Plesk - pleskrestore will attempt to register it.
Example of mappings for database servers:
[db-servers]
mysql:admin:setup@localhost:3306:default
postgresql:admin:setup@localhost:5432:default -> \
postgresql:admin:qweqwe@192.168.0.1:5432:default
First record indicates that the same MySQL server should be used for restore
of databases, which were placed on local MySQL server upon backup.
Second record tells pleskrestore to deploy databases, which were backuped
from localhost PostgreSQL server on another database server (192.168.0.1)
Please note that mapping rule should appear on a single line. In example
it's splitted to meet printing requirements.
[ip-map]
Optional section, which provides summary view of IP addresses, used in
backup, and gives you ability to change their values to the actual ones:
Example of IP map:
[ip-map]
192.168.1.1 shared -> 192.168.2.2 shared
192.168.1.2 exclusive
First record forces address 192.168.1.1 to be replaced by 192.168.2.2 for all
objects, which used it.
Second record leaves 192.168.1.2 without changes.
Individual mapping sections are created for clients and their domains.
Editing them you may override server-wide mapping rules, determined in
[ip-map] and [db-servers] sections.
Example of individual client's mapping:
[client1]
192.168.1.1 shared
192.168.1.2 exclusive -> 192.168.2.2 shared
domain1.com 192.168.1.1
You may delete or comment out from the map file individual sections for
objects, which you are not going to restore (another way of objects
selection is '-filter' option, described below)
Actually restore backup
WARNING! Please note, that restore of objects brings their state to EXACTLY
that one, which was saved in backup.
You should specify which objects you are going to restore with help of
"-level" option:
* server settings, clients and domains from the backup file ("-level server")
* clients accounts and their corresponding domains ("-level clients")
* domains from the backup file ("-level domains")
After you have map file, you may start the restore process. To select only
particular objects to restore (not the whole backup) you may utilize
"-filter" option, which allows to specify objects identifiers for the given
restore level.
For example to restore only two clients with their domains pleskrestore
invocation should be the following:
pleskrestore --restore backup.file -map map.file \
-level clients -filter list:client1,client2
Restore of several domains:
pleskrestore --restore backup.file -map map.file \
-level domains -filter list:domain1.com,domain12.com
Option "-filter" also accepts filename to read identifiers list from it (as a
newline-separated strings) or may read newline-separated identifiers from
stdin, when used as "-filter -"
-- See also --
* To extract parts of backup content (files, databases, etc) use
"backup-unpack" utility.
と説明してくれています。
--levelでフィルタのレベルを宣言して、--filterでリストア必要なユーザやドメインを選択すれば、部分的なリカバリもできるようです。
つまり、失敗してサイトコンテンツを壊してしまっても、Pleskの運営サイトによっては、たぶん実行しているであろう全体バックアップから、リカバリしてもらえる可能性を秘めているといえます。
もちろん、全体バックアップがどういうタイミングで行われているかはサイトの管理者の判断なのでそれに頼り切るのもなんですが、なんらかの失敗が重なって、DB的にリカバリ不可能な状況で最初から作り直す事態に陥るよりはサイト管理者に相談すると「蜘蛛の糸」が管理者から提供されるかもしれない期待
でも、部分リストアは管理者から見ればタイプミスでかなり良くない結果が待ち受けているだけに怖くてしたくないだろうなあ〜〜。
2009年01月16日
RedHat ES4 のPEARが動かなかった。
あれ〜〜〜
# pear upgrade-all
HTTP error, got response: HTTP/1.1 410 Gone
Didn't receive 200 OK from remote server. (HTTP/1.1 410 Gone)
だそうです。
どうもしらべると、、
Description:
------------
Users with very old PEAR versions are unable to follow the PEAR upgrade
instructions on the 1/3/08 news item announcing the XML-RPC service
shutdown, due to two issues:
- console_getopt current (v1.2.3) has only v2 package.xml, which older
pear installer can't read
- upgrade to pear-1.4.3 requires at least pear-1.3.3 already installed,
and some users' versions are older than that
Helping a user on #pear IRC showed that the following instructions will
succeed for a PEAR version starting at 1.3.2:
- pear upgrade --force http://pear.php.net/get/Archive_Tar
http://pear.php.net/get/XML_Parser
http://pear.php.net/get/Console_Getopt-1.2.2
- pear upgrade --force http://pear.php.net/get/PEAR-1.3.3 (_IF_ your
existing version is older than 1.3.3)
- pear upgrade --force http://pear.php.net/get/PEAR-1.4.3
- pear upgrade PEAR
あたりの話のようです。
ご指導の通りやったら動きました。。。
# pear upgrade-all
Will upgrade db
Will upgrade http
Will upgrade mail
Will upgrade net_smtp
Will upgrade net_socket
Will upgrade pear
Will upgrade xml_rpc
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
.......
upgrade-all ok: channel://pear.php.net/XML_RPC-1.5.1
upgrade-all ok: channel://pear.php.net/Net_Socket-1.0.9
upgrade-all ok: channel://pear.php.net/Net_SMTP-1.3.2
upgrade-all ok: channel://pear.php.net/Mail-1.1.14
upgrade-all ok: channel://pear.php.net/DB-1.7.13
To install use "pear install PEAR#featurename"
# pear upgrade-all
Will upgrade channel://pear.php.net/http
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
downloading HTTP-1.4.1.tgz ...
Starting to download HTTP-1.4.1.tgz (8,635 bytes)
.....done: 8,635 bytes
upgrade-all ok: channel://pear.php.net/HTTP-1.4.1
# pecl channel-update pear.php.net
Updating channel "pear.php.net"
Update of Channel "pear.php.net" succeeded
# pear channel-update pear.php.net
Updating channel "pear.php.net"
Channel "pear.php.net" is up to date
# pear upgrade-all
Nothing to upgrade-all
ほ。きれいになりました。。。
# pear upgrade-all
HTTP error, got response: HTTP/1.1 410 Gone
Didn't receive 200 OK from remote server. (HTTP/1.1 410 Gone)
だそうです。
どうもしらべると、、
Description:
------------
Users with very old PEAR versions are unable to follow the PEAR upgrade
instructions on the 1/3/08 news item announcing the XML-RPC service
shutdown, due to two issues:
- console_getopt current (v1.2.3) has only v2 package.xml, which older
pear installer can't read
- upgrade to pear-1.4.3 requires at least pear-1.3.3 already installed,
and some users' versions are older than that
Helping a user on #pear IRC showed that the following instructions will
succeed for a PEAR version starting at 1.3.2:
- pear upgrade --force http://pear.php.net/get/Archive_Tar
http://pear.php.net/get/XML_Parser
http://pear.php.net/get/Console_Getopt-1.2.2
- pear upgrade --force http://pear.php.net/get/PEAR-1.3.3 (_IF_ your
existing version is older than 1.3.3)
- pear upgrade --force http://pear.php.net/get/PEAR-1.4.3
- pear upgrade PEAR
あたりの話のようです。
ご指導の通りやったら動きました。。。
# pear upgrade-all
Will upgrade db
Will upgrade http
Will upgrade mail
Will upgrade net_smtp
Will upgrade net_socket
Will upgrade pear
Will upgrade xml_rpc
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
.......
upgrade-all ok: channel://pear.php.net/XML_RPC-1.5.1
upgrade-all ok: channel://pear.php.net/Net_Socket-1.0.9
upgrade-all ok: channel://pear.php.net/Net_SMTP-1.3.2
upgrade-all ok: channel://pear.php.net/Mail-1.1.14
upgrade-all ok: channel://pear.php.net/DB-1.7.13
To install use "pear install PEAR#featurename"
# pear upgrade-all
Will upgrade channel://pear.php.net/http
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
downloading HTTP-1.4.1.tgz ...
Starting to download HTTP-1.4.1.tgz (8,635 bytes)
.....done: 8,635 bytes
upgrade-all ok: channel://pear.php.net/HTTP-1.4.1
# pecl channel-update pear.php.net
Updating channel "pear.php.net"
Update of Channel "pear.php.net" succeeded
# pear channel-update pear.php.net
Updating channel "pear.php.net"
Channel "pear.php.net" is up to date
# pear upgrade-all
Nothing to upgrade-all
ほ。きれいになりました。。。
2009年01月06日
Hyper-VにSuse Enterprise 10 SP2 を入れようとしていますが、その3。。。
そこで、Operaでもやってみたのですが、やはり、2Gあたりでエラーで止まってしまいました。
どうも、ノベルのサイトはDVDイメージをアップロードされてはいるのですがどうもダウンロードさせてもらえそうにありません。
当分はCDイメージで頑張るしかないのでしょうか。。。
なんか時間を無駄にしたなあ〜〜。
でもやっとHyper−VへのSUSE再インストールを始めることができました。
おしまい。
どうも、ノベルのサイトはDVDイメージをアップロードされてはいるのですがどうもダウンロードさせてもらえそうにありません。
当分はCDイメージで頑張るしかないのでしょうか。。。
なんか時間を無駄にしたなあ〜〜。
でもやっとHyper−VへのSUSE再インストールを始めることができました。
おしまい。
2009年01月06日
Hyper-VにSuse Enterprise 10 SP2 を入れようとしていますが、その2。。。
いろいろ悩んでなノベルのサイトからSUSEのエンタープライズのメディアが、なぜ正常にダウンロードができないのだろうとみていたら、IEではノベルのサイトはかなり機嫌が悪いのでFireFox/3.0.5でアクセスしていたのですが、どうもDVDイメージのISOをダウンロードしようとするとすべて2Gバイトダウンロードしたところで「正常に
」終了してしまうことがわかりました。
う〜〜〜ん。Operaで再度ダウンロード中です。。。
サイト制限か?それともFireFox/3.0.5の癖なのか。。。。すぐわかるはずです。
でも。。。2Gダウンロードしないと結果が分からないので時間がかかります。
う〜〜〜ん。Operaで再度ダウンロード中です。。。
サイト制限か?それともFireFox/3.0.5の癖なのか。。。。すぐわかるはずです。
でも。。。2Gダウンロードしないと結果が分からないので時間がかかります。
2009年01月05日
Hyper-VにSuse Enterprise 10 SP2 を入れようとしていますが、エラーで止まります。
う〜〜ん。
Hyper-VにSUSE Linux Enterprise Server 10 SP2 x64を入れようとしていますが、エラーで止まります。(x86でも同じだった)
Installation mode で
Error occurred while creating the catalog
cd:///?devices=/dev/hdc Unknown Error:Unable to copy media directory to /var/tmp/Tmp.xxxxxx/MEDIA
だそうです。リカバリ用の画面にうつってMedia checkをすると壊れているといわれます。
でもNovellのサイトからダウンロードしたISOファイルで、server/workstation両方とも同じ様なエラーになります。
アップロードされているデータが壊れているのかなあ〜。
SP1のメディアを現在ダウンロード中・・・・でも終わりそうにないなあ〜
明日暇な時にもう一度やってみよう。。。
Hyper-VにSUSE Linux Enterprise Server 10 SP2 x64を入れようとしていますが、エラーで止まります。(x86でも同じだった)
Installation mode で
Error occurred while creating the catalog
cd:///?devices=/dev/hdc Unknown Error:Unable to copy media directory to /var/tmp/Tmp.xxxxxx/MEDIA
だそうです。リカバリ用の画面にうつってMedia checkをすると壊れているといわれます。
でもNovellのサイトからダウンロードしたISOファイルで、server/workstation両方とも同じ様なエラーになります。
アップロードされているデータが壊れているのかなあ〜。
SP1のメディアを現在ダウンロード中・・・・でも終わりそうにないなあ〜
明日暇な時にもう一度やってみよう。。。
2009年01月05日
Clock: inserting leap second 23:59:60 UTC...
2008年12月04日
sendmailをルールテストモードでデバッグしないといけなくなった。。
ある日、sendmailを使っているサーバで、あるドメインを解約処理をしていました。
vi /etc/mail/local-host-namesで編集してドメインを削除して、/etc/mail/virtusertableを一気に6000行ほどviで削除し、hashデータベースを作りなおして、userdelでPOPアカウントを削除するバッチを流しました。
今回のような大量な削除作業はデータベースから一個ずつじゃなく、エンジニアが一気に消した方がいろんな負荷が軽くて済みますよね。。。
さて仕上げにメール送信テストでランダムな文字列をドメインにくっつけてメールアドレスしてメールを送って外部に出ていくかを確認しました。
おや。。。。?
出ていきません。grep で/etc/mailの中のファイルに削除したドメインが残っているかを確認しましたがやはりありません。
おや〜〜〜?
不思議です、設定ファイルで宣言していないドメインに対してローカル配信を行おうとしています。ためしに自分のプライベートなメールアドレスに送ってみました。
うん、ちゃんとIIJへ出ていきます。
これは困りました。
おもむろに、sendmailの本も取り出しました。
オライリージャパン(O'REILLY)のSendmail VOLUME1 運用編です。
必要なところは8章の 「-btによるルールセットのテスト」です。
まずは、
$ /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /mx ponpokorinrin.jp
getmxrr(ponpokorinrin.jp) returns 7 value(s):
ASPMX.L.GOOGLE.COM.
ALT1.ASPMX.L.GOOGLE.COM.
ALT2.ASPMX.L.GOOGLE.COM.
ASPMX4.GOOGLEMAIL.COM.
ASPMX3.GOOGLEMAIL.COM.
ASPMX5.GOOGLEMAIL.COM.
ASPMX2.GOOGLEMAIL.COM.
>
お! G−Mailにこのお客さんは行ってしまったんだ。。。
まあ、それは関係なしと。。どちらにしろDNSのリゾルバも問題なく動いているようです。
次は、parseでアドレスの解析確認です。
僕のプライベートなアドレスは、
> /parse ponponpon123@rr.iij4u.or.jp
Cracked address = $g
Parsing envelope recipient address
canonify input: ponponpon123 @ rr . iij4u . or . jp
Canonify2 input: ponponpon123 < @ rr . iij4u . or . jp >
Canonify2 returns: ponponpon123 < @ rr . iij4u . or . jp . >
canonify returns: ponponpon123 < @ rr . iij4u . or . jp . >
parse input: ponponpon123 < @ rr . iij4u . or . jp . >
Parse0 input: ponponpon123 < @ rr . iij4u . or . jp . >
Parse0 returns: ponponpon123 < @ rr . iij4u . or . jp . >
ParseLocal input: ponponpon123 < @ rr . iij4u . or . jp . >
ParseLocal returns: ponponpon123 < @ rr . iij4u . or . jp . >
Parse1 input: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: < rr . iij4u . or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . < iij4u . or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . iij4u . < or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . iij4u . or . < jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
MailerToTriple input: < > ponponpon123 < @ rr . iij4u . or . jp . >
MailerToTriple returns: ponponpon123 < @ rr . iij4u . or . jp . >
Parse1 returns: $# esmtp $@ rr . iij4u . or . jp . $: ponponpon123 < @ rr . iij4u . or . jp . >
parse returns: $# esmtp $@ rr . iij4u . or . jp . $: ponponpon123 < @ rr . iij4u . or . jp . >
2 input: ponponpon123 < @ rr . iij4u . or . jp . >
2 returns: ponponpon123 < @ rr . iij4u . or . jp . >
EnvToSMTP input: ponponpon123 < @ rr . iij4u . or . jp . >
PseudoToReal input: ponponpon123 < @ rr . iij4u . or . jp . >
PseudoToReal returns: ponponpon123 < @ rr . iij4u . or . jp . >
MasqSMTP input: ponponpon123 < @ rr . iij4u . or . jp . >
MasqSMTP returns: ponponpon123 < @ rr . iij4u . or . jp . >
EnvToSMTP returns: ponponpon123 < @ rr . iij4u . or . jp . >
final input: ponponpon123 < @ rr . iij4u . or . jp . >
final returns: ponponpon123 @ rr . iij4u . or . jp
mailer esmtp, host rr.iij4u.or.jp., user ponponpon123@rr.iij4u.or.jp
うん確かにIIJに配送しようとしているようです。
じゃあ解約したドメインは、、
> /parse testtest@ponpokorinrin.jp
Cracked address = $g
Parsing envelope recipient address
canonify input: testtest @ ponpokorinrin . jp
Canonify2 input: testtest < @ ponpokorinrin . jp >
Canonify2 returns: testtest < @ ponpokorinrin . jp . >
canonify returns: testtest < @ ponpokorinrin . jp . >
parse input: testtest < @ ponpokorinrin . jp . >
Parse0 input: testtest < @ ponpokorinrin . jp . >
Parse0 returns: testtest < @ ponpokorinrin . jp . >
ParseLocal input: testtest < @ ponpokorinrin . jp . >
ParseLocal returns: testtest < @ ponpokorinrin . jp . >
Parse1 input: testtest < @ ponpokorinrin . jp . >
Parse1 returns: $# local $: testtest
parse returns: $# local $: testtest
2 input: testtest
2 returns: testtest
EnvToL input: testtest
EnvToL returns: testtest
final input: testtest
final returns: testtest
mailer local, user testtest
>
う〜〜ん確かにローカルに配信しようとしています。
では、ローカル配信するリストが入っているクラス$=Wを確認してみましょう。
> $=w
hokanodokka.ne.jp
acchinodokka.ac.jp
[ponpokorinrin.jp]
siranaidokka.co.jp
localhost
[127.0.0.1]
[202.zzz.xxx.8]
[202.zzz.xxx.6]
[202.zzz.xxx.7]
[202.zzz.xxx.5]
[202.zzz.xxx.3]
ponpokorinrin.jp
おおおお。。確かに入っています。sendmail.cfにもlocal-host-namesにもないのにローカル配信するためのリストにエントリーされています。
それは、IPアドレスのホスト名も同じです。お!そうか、逆引きにIPアドレスからひかれる情報が自動的に宣言されているのか・・・
$ nslookup 202.208.193.6
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: 210.xxx.yyy.bbb
Address: 210.xxx.yyy.bbb#53
6.xxx.zzz.202.in-addr.arpa name = ponpokorinrin.jp.
お。ありました。WEBサーバ用にIPエイリアスあげて、それを忘れないようにDNS上の逆引きに書いていたことを忘れていました。でも、逆引きで設定されたホスト名までsendmailが自動的にアクセプトするアドレスのドメインとして自動登録することは知らなかったです。
ちょっと遊びで、
6 IN PTR ponpokorinrin.jp.
IN PTR ponpokorinrin1.jp.
IN PTR ponpokorinrin2.jp.
と宣言してみました。どうでしょう。
> $=w
hokanodokka.ne.jp
acchinodokka.ac.jp
[ponpokorinrin.jp]
siranaidokka.co.jp
localhost
[127.0.0.1]
[202.zzz.xxx.8]
[202.zzz.xxx.6]
[202.zzz.xxx.7]
[202.zzz.xxx.5]
[202.zzz.xxx.3]
ponpokorinrin.jp
う〜〜ん。ラウンドロビンさせたドメインがすべて反映されたら何か使えそうな気がしたのですがーーーー変わらないです。local-host-namesの代わりにDNSの逆引き設定で制御できそうな気もしたんですが駄目だったみたいです。
まあ、どちらにしろ、逆引き設定から解約ドメインを消せば大丈夫そうです。
今回は、結構、焦ったなあ〜〜〜。自分の覚えていたことや経験がすべてひっくり返るんじゃないかという恐怖感ですよね。。。
おしまい。
vi /etc/mail/local-host-namesで編集してドメインを削除して、/etc/mail/virtusertableを一気に6000行ほどviで削除し、hashデータベースを作りなおして、userdelでPOPアカウントを削除するバッチを流しました。
今回のような大量な削除作業はデータベースから一個ずつじゃなく、エンジニアが一気に消した方がいろんな負荷が軽くて済みますよね。。。
さて仕上げにメール送信テストでランダムな文字列をドメインにくっつけてメールアドレスしてメールを送って外部に出ていくかを確認しました。
おや。。。。?
出ていきません。grep で/etc/mailの中のファイルに削除したドメインが残っているかを確認しましたがやはりありません。
おや〜〜〜?
不思議です、設定ファイルで宣言していないドメインに対してローカル配信を行おうとしています。ためしに自分のプライベートなメールアドレスに送ってみました。
うん、ちゃんとIIJへ出ていきます。
これは困りました。
おもむろに、sendmailの本も取り出しました。
オライリージャパン(O'REILLY)のSendmail VOLUME1 運用編です。
必要なところは8章の 「-btによるルールセットのテスト」です。
まずは、
$ /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /mx ponpokorinrin.jp
getmxrr(ponpokorinrin.jp) returns 7 value(s):
ASPMX.L.GOOGLE.COM.
ALT1.ASPMX.L.GOOGLE.COM.
ALT2.ASPMX.L.GOOGLE.COM.
ASPMX4.GOOGLEMAIL.COM.
ASPMX3.GOOGLEMAIL.COM.
ASPMX5.GOOGLEMAIL.COM.
ASPMX2.GOOGLEMAIL.COM.
>
お! G−Mailにこのお客さんは行ってしまったんだ。。。
まあ、それは関係なしと。。どちらにしろDNSのリゾルバも問題なく動いているようです。
次は、parseでアドレスの解析確認です。
僕のプライベートなアドレスは、
> /parse ponponpon123@rr.iij4u.or.jp
Cracked address = $g
Parsing envelope recipient address
canonify input: ponponpon123 @ rr . iij4u . or . jp
Canonify2 input: ponponpon123 < @ rr . iij4u . or . jp >
Canonify2 returns: ponponpon123 < @ rr . iij4u . or . jp . >
canonify returns: ponponpon123 < @ rr . iij4u . or . jp . >
parse input: ponponpon123 < @ rr . iij4u . or . jp . >
Parse0 input: ponponpon123 < @ rr . iij4u . or . jp . >
Parse0 returns: ponponpon123 < @ rr . iij4u . or . jp . >
ParseLocal input: ponponpon123 < @ rr . iij4u . or . jp . >
ParseLocal returns: ponponpon123 < @ rr . iij4u . or . jp . >
Parse1 input: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: < rr . iij4u . or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . < iij4u . or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . iij4u . < or . jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable input: rr . iij4u . or . < jp > ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
Mailertable returns: ponponpon123 < @ rr . iij4u . or . jp . >
MailerToTriple input: < > ponponpon123 < @ rr . iij4u . or . jp . >
MailerToTriple returns: ponponpon123 < @ rr . iij4u . or . jp . >
Parse1 returns: $# esmtp $@ rr . iij4u . or . jp . $: ponponpon123 < @ rr . iij4u . or . jp . >
parse returns: $# esmtp $@ rr . iij4u . or . jp . $: ponponpon123 < @ rr . iij4u . or . jp . >
2 input: ponponpon123 < @ rr . iij4u . or . jp . >
2 returns: ponponpon123 < @ rr . iij4u . or . jp . >
EnvToSMTP input: ponponpon123 < @ rr . iij4u . or . jp . >
PseudoToReal input: ponponpon123 < @ rr . iij4u . or . jp . >
PseudoToReal returns: ponponpon123 < @ rr . iij4u . or . jp . >
MasqSMTP input: ponponpon123 < @ rr . iij4u . or . jp . >
MasqSMTP returns: ponponpon123 < @ rr . iij4u . or . jp . >
EnvToSMTP returns: ponponpon123 < @ rr . iij4u . or . jp . >
final input: ponponpon123 < @ rr . iij4u . or . jp . >
final returns: ponponpon123 @ rr . iij4u . or . jp
mailer esmtp, host rr.iij4u.or.jp., user ponponpon123@rr.iij4u.or.jp
うん確かにIIJに配送しようとしているようです。
じゃあ解約したドメインは、、
> /parse testtest@ponpokorinrin.jp
Cracked address = $g
Parsing envelope recipient address
canonify input: testtest @ ponpokorinrin . jp
Canonify2 input: testtest < @ ponpokorinrin . jp >
Canonify2 returns: testtest < @ ponpokorinrin . jp . >
canonify returns: testtest < @ ponpokorinrin . jp . >
parse input: testtest < @ ponpokorinrin . jp . >
Parse0 input: testtest < @ ponpokorinrin . jp . >
Parse0 returns: testtest < @ ponpokorinrin . jp . >
ParseLocal input: testtest < @ ponpokorinrin . jp . >
ParseLocal returns: testtest < @ ponpokorinrin . jp . >
Parse1 input: testtest < @ ponpokorinrin . jp . >
Parse1 returns: $# local $: testtest
parse returns: $# local $: testtest
2 input: testtest
2 returns: testtest
EnvToL input: testtest
EnvToL returns: testtest
final input: testtest
final returns: testtest
mailer local, user testtest
>
う〜〜ん確かにローカルに配信しようとしています。
では、ローカル配信するリストが入っているクラス$=Wを確認してみましょう。
> $=w
hokanodokka.ne.jp
acchinodokka.ac.jp
[ponpokorinrin.jp]
siranaidokka.co.jp
localhost
[127.0.0.1]
[202.zzz.xxx.8]
[202.zzz.xxx.6]
[202.zzz.xxx.7]
[202.zzz.xxx.5]
[202.zzz.xxx.3]
ponpokorinrin.jp
おおおお。。確かに入っています。sendmail.cfにもlocal-host-namesにもないのにローカル配信するためのリストにエントリーされています。
それは、IPアドレスのホスト名も同じです。お!そうか、逆引きにIPアドレスからひかれる情報が自動的に宣言されているのか・・・
$ nslookup 202.208.193.6
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: 210.xxx.yyy.bbb
Address: 210.xxx.yyy.bbb#53
6.xxx.zzz.202.in-addr.arpa name = ponpokorinrin.jp.
お。ありました。WEBサーバ用にIPエイリアスあげて、それを忘れないようにDNS上の逆引きに書いていたことを忘れていました。でも、逆引きで設定されたホスト名までsendmailが自動的にアクセプトするアドレスのドメインとして自動登録することは知らなかったです。
ちょっと遊びで、
6 IN PTR ponpokorinrin.jp.
IN PTR ponpokorinrin1.jp.
IN PTR ponpokorinrin2.jp.
と宣言してみました。どうでしょう。
> $=w
hokanodokka.ne.jp
acchinodokka.ac.jp
[ponpokorinrin.jp]
siranaidokka.co.jp
localhost
[127.0.0.1]
[202.zzz.xxx.8]
[202.zzz.xxx.6]
[202.zzz.xxx.7]
[202.zzz.xxx.5]
[202.zzz.xxx.3]
ponpokorinrin.jp
う〜〜ん。ラウンドロビンさせたドメインがすべて反映されたら何か使えそうな気がしたのですがーーーー変わらないです。local-host-namesの代わりにDNSの逆引き設定で制御できそうな気もしたんですが駄目だったみたいです。
まあ、どちらにしろ、逆引き設定から解約ドメインを消せば大丈夫そうです。
今回は、結構、焦ったなあ〜〜〜。自分の覚えていたことや経験がすべてひっくり返るんじゃないかという恐怖感ですよね。。。
おしまい。
2008年12月03日
DNSのセカンダリ反映が遅れる場合がある。。。
どうも、DNSサーバの更新をしていますが、プライマリのDNSで変更してもセカンダリDNSへの反映が遅れる場合があります。もちろん、基本はSOAレコードの更新間隔に依存するのですが、古い時期に設定したDNSデータは、
@ IN SOA ns.akatukaponpoko.jp postmaster.akatukaponpoko.jp. (
2007111301 ; serial
36000 ; refresh every 10 hours
3600 ; retry after 1 hour
3600000 ; expire every 1000 hours
36000 ; default ttl is 10 hours
)
という感じで10時間とかなり長めになっています。
まあ、WindowsサーバなDNSはDHCPで自動登録なんかを使う場合が多いからか
akatukaponpoko.jp
primary name server = ex01.akatukaponpoko.jp
responsible mail addr = info.akatukaponpoko.jp
serial = 447
refresh = 900 (15 mins)
retry = 600 (10 mins)
expire = 86400 (1 day)
default TTL = 3600 (1 hour)
ex01.netlaputa.jp internet address = 202.xxx.xxx.xxx
refresh = 900 (15 mins)と15分間隔という短時間でセカンダリサーバがリフレッシュされてしまいあまり気にしなくていいのですが。。。
実際にはUNIX・LINUXサーバ上で多くのリフレッシュ間隔の長いデータがいっぱいあります。このSOAをすべて変えるのも面倒だし。。。。古いサーバでは、crondで時間間隔設定して、rsyncを使ってゾーン情報をファイル同期してから、namedをリロードしてデータを反映させていたのですが、どうも、更新していない時にも定期的にリロードが走るのがちょっといやらしい気がします。
そこで、bindでサポートされているDNS Notify(RFC 1996)を使って更新を各セカンダリサーバにアナウンスしてデータを更新させるようにしました。
といってもbindのコンフィグファイルに
notify yes;
also-notify {
202.xxx.xxx.xxx;
202.xxx.xxx.xxy;
210.xxx.xxx.xxx;
210.xxx.xxx.xxy;
210.xxx.xxx.xxz;
};
を付け加えただけですが、、、
03-Dec-2008 11:43:34.982 notify: info: client 210.xxx.xxx.xx#34142: received notify for zone 'akatukaponpoko.jp'
03-Dec-2008 11:43:34.985 general: info: zone akatukaponpoko.jp/IN: Transfer started.
03-Dec-2008 11:43:35.009 general: info: zone akatukaponpoko.jp/IN: transferred serial 2008120301
03-Dec-2008 11:43:35.010 notify: info: zone akatukaponpoko.jp/IN: sending notifies (serial 2008120301)
03-Dec-2008 11:48:03.844 general: info: zone akatukaponpoko.jp/IN: loaded serial 2008120301
03-Dec-2008 11:48:04.536 notify: info: zone akatukaponpoko.jp/IN: sending notifies (serial 2008120301)
とセカンダリサーバで機能が確認できました。
どうもこれが一番手間いらずでしょうか。。。。
でも、WindowsサーバなDNSにもわざわざbindを入れなくてもサポートされていて通知は問題なく行われました。
ただPleskなサーバの場合、ネームサーバ自体はサポートされているのですが、設定ファイルに追加する手段が不明です。(DNS情報の更新時に設定ファイルがダイナミックにデータベースにしたがって再作成される。。。)
あと、DNSにはちょっとしたエラーがたくさん出ています。
No default TTL ($TTL) set, using SOA minimum instead
これについては、ゾーンファイルのトップに$TTLを地道に修正していくしかないかなあ〜
WARNING SOA refresh value is less than 2 * retry
これについては、WindowsベースのDNSの場合、
refresh = 900 (15 mins)
retry = 600 (10 mins)
と引っかかってしまうんですよね。。。どうもこのWindowsサーバのDNSの規定値の変更はスマートな手段がなくて思考中・・・新規に作る場合はSOAを手動で
refresh =1200 (20 mins)
retry = 600 (10 mins)
にすることで当分逃げかなあ〜〜
@ IN SOA ns.akatukaponpoko.jp postmaster.akatukaponpoko.jp. (
2007111301 ; serial
36000 ; refresh every 10 hours
3600 ; retry after 1 hour
3600000 ; expire every 1000 hours
36000 ; default ttl is 10 hours
)
という感じで10時間とかなり長めになっています。
まあ、WindowsサーバなDNSはDHCPで自動登録なんかを使う場合が多いからか
akatukaponpoko.jp
primary name server = ex01.akatukaponpoko.jp
responsible mail addr = info.akatukaponpoko.jp
serial = 447
refresh = 900 (15 mins)
retry = 600 (10 mins)
expire = 86400 (1 day)
default TTL = 3600 (1 hour)
ex01.netlaputa.jp internet address = 202.xxx.xxx.xxx
refresh = 900 (15 mins)と15分間隔という短時間でセカンダリサーバがリフレッシュされてしまいあまり気にしなくていいのですが。。。
実際にはUNIX・LINUXサーバ上で多くのリフレッシュ間隔の長いデータがいっぱいあります。このSOAをすべて変えるのも面倒だし。。。。古いサーバでは、crondで時間間隔設定して、rsyncを使ってゾーン情報をファイル同期してから、namedをリロードしてデータを反映させていたのですが、どうも、更新していない時にも定期的にリロードが走るのがちょっといやらしい気がします。
そこで、bindでサポートされているDNS Notify(RFC 1996)を使って更新を各セカンダリサーバにアナウンスしてデータを更新させるようにしました。
といってもbindのコンフィグファイルに
notify yes;
also-notify {
202.xxx.xxx.xxx;
202.xxx.xxx.xxy;
210.xxx.xxx.xxx;
210.xxx.xxx.xxy;
210.xxx.xxx.xxz;
};
を付け加えただけですが、、、
03-Dec-2008 11:43:34.982 notify: info: client 210.xxx.xxx.xx#34142: received notify for zone 'akatukaponpoko.jp'
03-Dec-2008 11:43:34.985 general: info: zone akatukaponpoko.jp/IN: Transfer started.
03-Dec-2008 11:43:35.009 general: info: zone akatukaponpoko.jp/IN: transferred serial 2008120301
03-Dec-2008 11:43:35.010 notify: info: zone akatukaponpoko.jp/IN: sending notifies (serial 2008120301)
03-Dec-2008 11:48:03.844 general: info: zone akatukaponpoko.jp/IN: loaded serial 2008120301
03-Dec-2008 11:48:04.536 notify: info: zone akatukaponpoko.jp/IN: sending notifies (serial 2008120301)
とセカンダリサーバで機能が確認できました。
どうもこれが一番手間いらずでしょうか。。。。
でも、WindowsサーバなDNSにもわざわざbindを入れなくてもサポートされていて通知は問題なく行われました。
ただPleskなサーバの場合、ネームサーバ自体はサポートされているのですが、設定ファイルに追加する手段が不明です。(DNS情報の更新時に設定ファイルがダイナミックにデータベースにしたがって再作成される。。。)
あと、DNSにはちょっとしたエラーがたくさん出ています。
No default TTL ($TTL
これについては、ゾーンファイルのトップに$TTL
WARNING SOA refresh value is less than 2 * retry
これについては、WindowsベースのDNSの場合、
refresh = 900 (15 mins)
retry = 600 (10 mins)
と引っかかってしまうんですよね。。。どうもこのWindowsサーバのDNSの規定値の変更はスマートな手段がなくて思考中・・・新規に作る場合はSOAを手動で
refresh =1200 (20 mins)
retry = 600 (10 mins)
にすることで当分逃げかなあ〜〜
2008年11月18日
せっかくHyper-Vに、SUSE Linux Enterpriseを入れたので作業環境を整えました。
せっかくHyper-Vに、SUSE Linux Enterpriseを入れたので作業環境を整えようと思います。
まず、SSHについては標準だし、いまのUltra5のSolarisで使っていたプライバシーキーを持ってくれば、あっさり、UNIXなサーバのメンテナンスには事欠かなくなります。
次にメールですが、やはりUNIXな世界だとEMACS上のメールソフトを使うのが一般的でしょうか。。

まずは、久々(そういえば、UNIXなPC環境でサーバサポート業務をするのは、かれこれ8年ぶりくらいな気がします。。。)のEMACSのインストールですディフォルトでSUSEに入っていたのは、GNU Emacs 21.3.1 でした。CTRL−¥を押してみると、"Can't activate input method rfc1345" だそうです。

そこで、Current Stable Release: 22.3 (September 5, 2008). な、EMACSをダウンロードしてインストールすることにしました。

解凍して./configure --help を見てみると、どうもいまのEMACS(MULE)は、すでにXIMをサポートしているようで、昔のように、CANNAやWnnのかな漢字変換用のライブラリを持ってきてmakeする必要はなくなっているようです。
$ configure; make
でうまくいきそうです。標準のEMACSは、/usr/binに配置されていますが、/usr/local/bin が先に宣言されているので、デフォルトで/usr/local/binに配置されるデフォルト設定でいれれば、なにもせずにemacsと呼んだ時に新しい方が優先される感じです。
さて、make install してみると、CTRL−¥で、あっさり日本語のモードになりました。でも、EMACSの文字列選択でCTRL-[SPC:スペース]すると、「SCIMとAnthy」のフロントエンドのコントロールパネルが上がってきてしまいます。
ふむ、キーバインドがぶつかってしまっているのですね。そのまま、SCIMをブリッジして入力に使ってしまうプログラムもあるようですが、
/usr/local/bin/emacs のシンボリックリンクなファイルをリネームして、
#!/bin/sh
XMODIFIERS=@im=none emacs-22.3 $*
をemacsにするとEMACS用にオープンしたウィンドウではSCIMの呼び出しを止められるようです。おおお。文字列の選択ができるようになりました。
あとは、メールの送受信です。
MEWというソフトがやはり有名でしょうか。。。
こちらも、現在の正式版のMew 6.1(2008年6月6日)を./configure;make;make installでいれてあっさり終わりました。
ただメールについては当然クライアントとしての設定があります。
mew.el です。
(setq mew-name "Ponpoko")
(setq mew-user "Ponpoko")
(setq mew-mail-domain "akaponpon.xx")
(setq mew-smtp-server "ex01.akaponpon.xx")
(setq mew-smtp-user "ponpoko@akaponpon.xx")
(setq mew-smtp-port "submission")
(setq mew-proto "%")
(setq mew-imap-user "ponpoko@akaponpon.xx")
(setq mew-imap-server "ex01.akaponpon.xx")
(setq mew-use-cached-passwd t)
(setq mew-imap-delete nil)
てな感じで設定ファイルを作っています。
まあ、これで、送受信でき、SSHがあればもうサーバメンテナンスは可能です。
もちろんWindowsなサーバも Terminal Server Client を使えば、RDPでWindowsのリモートアクセスも可能です。。まあ、わざわざ、リモートアクセスにLinux使う必要はない気もしますが・・・・
でも、一番、Hyper−VのLinuxで嬉しいのは、しっかりしたXサーバが使えることでしょうか。。。もちろん、Windows上でいろいろなXサーバソフトがあるのですが、結構いいソフトはそれなりにいい値段するんですよね。。。でも、由緒正しいXサーバが自分のPC上で動くのはうれしいです。

ふう。。。でも、OS間(vmconnectのLinuxとWindows間)で文字のコピー・ペーストができるとうれしいのだけどなあ〜

まだまだ、カスタマイズしたいところは多いのですが、今回はここでおしまい。
まず、SSHについては標準だし、いまのUltra5のSolarisで使っていたプライバシーキーを持ってくれば、あっさり、UNIXなサーバのメンテナンスには事欠かなくなります。
次にメールですが、やはりUNIXな世界だとEMACS上のメールソフトを使うのが一般的でしょうか。。
まずは、久々(そういえば、UNIXなPC環境でサーバサポート業務をするのは、かれこれ8年ぶりくらいな気がします。。。)のEMACSのインストールですディフォルトでSUSEに入っていたのは、GNU Emacs 21.3.1 でした。CTRL−¥を押してみると、"Can't activate input method rfc1345" だそうです。
そこで、Current Stable Release: 22.3 (September 5, 2008). な、EMACSをダウンロードしてインストールすることにしました。
解凍して./configure --help を見てみると、どうもいまのEMACS(MULE)は、すでにXIMをサポートしているようで、昔のように、CANNAやWnnのかな漢字変換用のライブラリを持ってきてmakeする必要はなくなっているようです。
$ configure; make
でうまくいきそうです。標準のEMACSは、/usr/binに配置されていますが、/usr/local/bin が先に宣言されているので、デフォルトで/usr/local/binに配置されるデフォルト設定でいれれば、なにもせずにemacsと呼んだ時に新しい方が優先される感じです。
さて、make install してみると、CTRL−¥で、あっさり日本語のモードになりました。でも、EMACSの文字列選択でCTRL-[SPC:スペース]すると、「SCIMとAnthy」のフロントエンドのコントロールパネルが上がってきてしまいます。
ふむ、キーバインドがぶつかってしまっているのですね。そのまま、SCIMをブリッジして入力に使ってしまうプログラムもあるようですが、
/usr/local/bin/emacs のシンボリックリンクなファイルをリネームして、
#!/bin/sh
XMODIFIERS=@im=none emacs-22.3 $*
をemacsにするとEMACS用にオープンしたウィンドウではSCIMの呼び出しを止められるようです。おおお。文字列の選択ができるようになりました。
あとは、メールの送受信です。
MEWというソフトがやはり有名でしょうか。。。
こちらも、現在の正式版のMew 6.1(2008年6月6日)を./configure;make;make installでいれてあっさり終わりました。
ただメールについては当然クライアントとしての設定があります。
mew.el です。
(setq mew-name "Ponpoko")
(setq mew-user "Ponpoko")
(setq mew-mail-domain "akaponpon.xx")
(setq mew-smtp-server "ex01.akaponpon.xx")
(setq mew-smtp-user "ponpoko@akaponpon.xx")
(setq mew-smtp-port "submission")
(setq mew-proto "%")
(setq mew-imap-user "ponpoko@akaponpon.xx")
(setq mew-imap-server "ex01.akaponpon.xx")
(setq mew-use-cached-passwd t)
(setq mew-imap-delete nil)
てな感じで設定ファイルを作っています。
まあ、これで、送受信でき、SSHがあればもうサーバメンテナンスは可能です。
もちろんWindowsなサーバも Terminal Server Client を使えば、RDPでWindowsのリモートアクセスも可能です。。まあ、わざわざ、リモートアクセスにLinux使う必要はない気もしますが・・・・
でも、一番、Hyper−VのLinuxで嬉しいのは、しっかりしたXサーバが使えることでしょうか。。。もちろん、Windows上でいろいろなXサーバソフトがあるのですが、結構いいソフトはそれなりにいい値段するんですよね。。。でも、由緒正しいXサーバが自分のPC上で動くのはうれしいです。
ふう。。。でも、OS間(vmconnectのLinuxとWindows間)で文字のコピー・ペーストができるとうれしいのだけどなあ〜
まだまだ、カスタマイズしたいところは多いのですが、今回はここでおしまい。
2008年10月15日
サイトCrackingとOperation not permitted で変更できないファイルな話・・・
Linuxサイトの乗っ取りなんかで、たまにクラッカーが知識の無いエンジニアからの復活を阻止しようとする試みの一つにOperation not permitted なファイルでクラックして設置したサイトを固めてしまう場合があります。(Windowsサーバでも同様な方法があります。)
その場合、vi /etc/init.d/sshd なんかで内容を変えようとしても、
"sshd" E212: Can't open file for writing
てな感じで変更できなかったり、消そうとして、rm sshd としても、
# rm -f sshd
rm: cannot remove `sshd': Operation not permitted
#
なんていって、システムに嫌がられて、ハッカーに変更されたシステムを戻せずに困ってしまいます。
# ls -l sshd
total 0
-rwxr-xr-x 1 root root 0 May 2 2006 sshd
#
とパーミッションは問題ないのに・・・
これは拡張アトリビュート( ext2:Linux second extended file systemやxfsでサポートされている )というのが設定されてファイルの操作ができなくなっているのです。(ちなみにファイルシステムとしての属性なので、CDROMのレスキューモードであげてディスクの内容を修正しようとしても、mountした時点で有効になって、やはり変更できません。)
まずこのアトリビュートを見るには、lsattrを使います。
# lsattr sshd
suS-iadAc---- sshd
#
おおおお〜かなり華やかです。。。
ためしにふつうにクラッカーに触られていないファイルは、
# lsattr /boot/message.ja
------------- /boot/message.ja
#
と横一本線です。
さて、suSiadAcなんて宣言されているんですが、その結果はどんな属性を持っているんでしょう。。。
`s' 属性が設定されているファイルが削除されると、割り当てられていたブロックの中身が 0 にされ、ディスクに書き戻される。
`u' 属性が設定されているファイルを削除すると、その内容は保護される。これにより、ユーザがファイルを復活させることが可能になる。
`S' 属性が設定されているファイルが変更されると、変更は同期的にディスクに書き込まれる
`i' 属性が設定されているファイルは、変更することができない。すなわち、削除、名前の変更、このファイルを指すリンクの作成、このファイルに対するデータの書き込みが禁止される。スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティを持つプロセスだけが、この属性を設定・解除できる。
`a' 属性が設定されているファイルは、書き込みの際に追加モードでしかオープンできない。スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティ (capability) を持つプロセスだけが、この属性を設定・解除できる。
`d' 属性が設定されているファイルは、 dump(8) プログラムを起動した際にバックアップされない。
`A' 属性が設定されているファイルは、アクセスされても atime レコードが変更されない。
`c' 属性が設定されているファイルは、ディスク上に置かれるときカーネルによって自動的に圧縮される。
となります。どうもroot特権をもってしてもアトリビュートの解除はできても、無視して削除したり変更したりはできないようです。
といっても、この中でファイル削除をできなくしているのはman chattrをみるかぎり、Aオプションでatimeの変更をクラックした時間をわからなくして、aiで変更を無効にしてクラックしたファイルを守っているようで、それ以外は桜<さくら>のようです。
まあ、
# chattr -suSiadAc sshd
# lsattr sshd
------------- sshd
#
できれいなまっすぐな一本線にできて、ファイル制御を取り戻せます。
まあ、どちらにしろ、どこに何されているかはっきり分からないので、必要なデータを抜き出して再インストールしたほうが安全そうです。。。。
P.S.chattr/lsattrは、LPICの101試験で、バックアップ対象から外すテクニック(dオプションですね。)として紹介されているようです。
おしまい。
その場合、vi /etc/init.d/sshd なんかで内容を変えようとしても、
"sshd" E212: Can't open file for writing
てな感じで変更できなかったり、消そうとして、rm sshd としても、
# rm -f sshd
rm: cannot remove `sshd': Operation not permitted
#
なんていって、システムに嫌がられて、ハッカーに変更されたシステムを戻せずに困ってしまいます。
# ls -l sshd
total 0
-rwxr-xr-x 1 root root 0 May 2 2006 sshd
#
とパーミッションは問題ないのに・・・
これは拡張アトリビュート( ext2:Linux second extended file systemやxfsでサポートされている )というのが設定されてファイルの操作ができなくなっているのです。(ちなみにファイルシステムとしての属性なので、CDROMのレスキューモードであげてディスクの内容を修正しようとしても、mountした時点で有効になって、やはり変更できません。)
まずこのアトリビュートを見るには、lsattrを使います。
# lsattr sshd
suS-iadAc---- sshd
#
おおおお〜かなり華やかです。。。
ためしにふつうにクラッカーに触られていないファイルは、
# lsattr /boot/message.ja
------------- /boot/message.ja
#
と横一本線です。
さて、suSiadAcなんて宣言されているんですが、その結果はどんな属性を持っているんでしょう。。。
`s' 属性が設定されているファイルが削除されると、割り当てられていたブロックの中身が 0 にされ、ディスクに書き戻される。
`u' 属性が設定されているファイルを削除すると、その内容は保護される。これにより、ユーザがファイルを復活させることが可能になる。
`S' 属性が設定されているファイルが変更されると、変更は同期的にディスクに書き込まれる
`i' 属性が設定されているファイルは、変更することができない。すなわち、削除、名前の変更、このファイルを指すリンクの作成、このファイルに対するデータの書き込みが禁止される。スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティを持つプロセスだけが、この属性を設定・解除できる。
`a' 属性が設定されているファイルは、書き込みの際に追加モードでしかオープンできない。スーパーユーザーまたは CAP_LINUX_IMMUTABLE ケーパビリティ (capability) を持つプロセスだけが、この属性を設定・解除できる。
`d' 属性が設定されているファイルは、 dump(8) プログラムを起動した際にバックアップされない。
`A' 属性が設定されているファイルは、アクセスされても atime レコードが変更されない。
`c' 属性が設定されているファイルは、ディスク上に置かれるときカーネルによって自動的に圧縮される。
となります。どうもroot特権をもってしてもアトリビュートの解除はできても、無視して削除したり変更したりはできないようです。
といっても、この中でファイル削除をできなくしているのはman chattrをみるかぎり、Aオプションでatimeの変更をクラックした時間をわからなくして、aiで変更を無効にしてクラックしたファイルを守っているようで、それ以外は桜<さくら>のようです。
まあ、
# chattr -suSiadAc sshd
# lsattr sshd
------------- sshd
#
できれいなまっすぐな一本線にできて、ファイル制御を取り戻せます。
まあ、どちらにしろ、どこに何されているかはっきり分からないので、必要なデータを抜き出して再インストールしたほうが安全そうです。。。。
P.S.chattr/lsattrは、LPICの101試験で、バックアップ対象から外すテクニック(dオプションですね。)として紹介されているようです。
おしまい。
2008年10月10日
resolv.confについて悩む・・・怖〜い怖〜い話
今日の話は怖〜い怖〜い
話です。
Solarisで、resolv.confの動きでドキドキ
したことありませんか。。。
# ifconfig -a more
なんてタイプミスしたときに、/etc/resolv.conf にdomain xxxxx.ne.jp なんて宣言がある(もしくは、所属しているドメインにmoreというホストがある:こちらは珍しいパターンか?)と大変なことになります。。。
え! どうして・・・って感じですよね。
Linuxな世界ではifconfig -aというのは無くて、すべてのインターフェースを見るのには、# ifconfig で見ることができます。
でもSolarisなマシンではすべてのインターフェースの設定をみるのに # ifconfig -a ってします。ifconfig だけだと、Helpのような
$ ifconfig
usage: ifconfig | -a[ 4 | 6 | D ][ u | d ][ Z ]
......
というメッセージになります。
そこで、ifconfig -a moreとすると、当然パイプをつけたかったのですが、タイプミスで抜けてしまっています。
そうすると、ifcocnfig コマンドはすべてのインターフェース(IPエイリアス・ローカルリンクアドレスloを含む)にmoreを設定しようとします。

ifconfig にmoreなんて宣言内容・・・あったかなあ〜と思うのですが、moreは、ホスト名として勘違い?され、resolv.confのdomain xxxxxxx.ne.jp を検索して、存在しないと、more.ne.jpのアドレスを探しに行きます。。。。
more.ne.jp ・・・・ これが存在しているのです。
$ nslookup more.ne.jp
Non-authoritative answer:
Name: more.ne.jp
Address: 61.126.38.244
その結果・・・なんとすべてのインターフェースに対して 61.126.38.244 というIPアドレスを宣言していくのです。。。
# ifconfig -a |more
lo0: flags=1000849 mtu 8232 index 1
inet 61.126.38.244 netmask ff000000
xxx0: flags=1000842 mtu 1500 index 2
inet 61.126.38.244 netmask ffffff00 broadcast 61.126.38.255
ether XX:XX:XX:XX:XX:XX
つづく。。。
その結果は、
想像したくない状況です。。。
怖い怖い・・・・
もちろんターミナルサーバ経由のシリアルコンソールやHPのマシンなどでILOアクセスのコンソールがあれば問題ないでしょうが通常、多くのリモートアクセスしていたSEは、画面と同時に
凍ってしまいます・・
というわけで、Solarisな環境でルートアカウントでmoreを使う人で、ne.jpドメインな宣言をしている人はresolv.confからdomainの宣言を消すことを強くお勧めするのであった。。。
おしまい。。



Solarisで、resolv.confの動きでドキドキ
# ifconfig -a more
なんてタイプミスしたときに、/etc/resolv.conf にdomain xxxxx.ne.jp なんて宣言がある(もしくは、所属しているドメインにmoreというホストがある:こちらは珍しいパターンか?)と大変なことになります。。。
え! どうして・・・って感じですよね。
Linuxな世界ではifconfig -aというのは無くて、すべてのインターフェースを見るのには、# ifconfig で見ることができます。
でもSolarisなマシンではすべてのインターフェースの設定をみるのに # ifconfig -a ってします。ifconfig だけだと、Helpのような
$ ifconfig
usage: ifconfig
......
というメッセージになります。
そこで、ifconfig -a moreとすると、当然パイプをつけたかったのですが、タイプミスで抜けてしまっています。
そうすると、ifcocnfig コマンドはすべてのインターフェース(IPエイリアス・ローカルリンクアドレスloを含む)にmoreを設定しようとします。
ifconfig にmoreなんて宣言内容・・・あったかなあ〜と思うのですが、moreは、ホスト名として勘違い?され、resolv.confのdomain xxxxxxx.ne.jp を検索して、存在しないと、more.ne.jpのアドレスを探しに行きます。。。。
more.ne.jp ・・・・ これが存在しているのです。
$ nslookup more.ne.jp
Non-authoritative answer:
Name: more.ne.jp
Address: 61.126.38.244
その結果・・・なんとすべてのインターフェースに対して 61.126.38.244 というIPアドレスを宣言していくのです。。。
# ifconfig -a |more
lo0: flags=1000849
inet 61.126.38.244 netmask ff000000
xxx0: flags=1000842
inet 61.126.38.244 netmask ffffff00 broadcast 61.126.38.255
ether XX:XX:XX:XX:XX:XX
つづく。。。
その結果は、
もちろんターミナルサーバ経由のシリアルコンソールやHPのマシンなどでILOアクセスのコンソールがあれば問題ないでしょうが通常、多くのリモートアクセスしていたSEは、画面と同時に
というわけで、Solarisな環境でルートアカウントでmoreを使う人で、ne.jpドメインな宣言をしている人はresolv.confからdomainの宣言を消すことを強くお勧めするのであった。。。
おしまい。。
2008年10月07日
あれ〜Solaris9でmanコマンドが動かない。。。
古いマシンの置き換えでSolaris9をセットアップしていました。
Solaris9は久々な感じですが、Solaris10のようなカーネルがダイナミックに作られたりsvcadmで管理したりというような気持ち悪さが無くて、純粋にUNIXの知識が使える素直さが好きです。
それはさておき、まあ、いつものようにGNUツールを入れてメールシステムをデフォルトのSendmailのパッケージを削除し、Postfixを入れてと・・・としていましたが、ふと築くとmanコマンドが動かなくなっています。。
bash-3.2# man xntpd
Reformatting page. Please Wait...bash-3.2#

# truss man man
execve("/usr/bin/man", 0xFFBFFE84, 0xFFBFFE90) argc = 2
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF3A0000
......
lstat64("/tmp/sman_7_aGnn", 0xFFBFC2A8) Err#2 ENOENT
open("/tmp/sman_7_aGnn", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
sigfillset(0xFF342940) = 0
sigprocmask(SIG_BLOCK, 0xFFBFC314, 0xFFBFC304) = 0
sigaction(SIGCLD, 0xFFBFC1B8, 0xFFBFC2C4) = 0
vfork() = 6765
sigaction(SIGINT, 0xFFBFC1B8, 0xFFBFC26C) = 0
sigaction(SIGQUIT, 0xFFBFC1B8, 0xFFBFC24C) = 0
waitid(P_PID, 6765, 0xFFBFC158, WEXITED|WTRAPPED|_WNOCHLD) = 0
sigaction(SIGINT, 0xFFBFC1B8, 0x00000000) = 0
sigaction(SIGQUIT, 0xFFBFC1B8, 0x00000000) = 0
sigaction(SIGCLD, 0xFFBFC1B8, 0x00000000) = 0
sigprocmask(SIG_SETMASK, 0xFFBFC304, 0x00000000) = 0
fstat64(5, 0xFFBFC2D0) = 0
fstat64(5, 0xFFBFC178) = 0
ioctl(5, TCGETA, 0xFFBFC25C) Err#25 ENOTTY
read(5, 0x0002E404, 8192) = 0
llseek(5, 0, SEEK_CUR) = 0
close(5) = 0
close(4) = 0
close(3) = 0
_exit(0)
#
なんてやってみましたが、どうも一時ファイルを作ったところで、なんかをforkして落ちているみたいです。
# cd /tmp
# ls
total 15
-rw------- 1 ponpon other 0 Oct 7 14:34 mp.Gaqrn
-rw------- 1 root other 0 Oct 7 14:39 mp18aiFn
-rw------- 1 ponpon other 0 Oct 7 14:31 mp37aqpn
....
-rw------- 1 ponpon other 0 Oct 7 14:34 sman__Gaqrn
-rw------- 1 ponpon other 0 Oct 7 14:34 sman_aJaGqn
-rw------- 1 ponpon other 0 Oct 7 14:37 sman_k0aGxn
-rw------- 1 root other 0 Oct 7 14:26 sman_kcaGjn
-rw------- 1 root other 0 Oct 7 14:26 sman_oxaWin
確かに/tmpにいっぱい変なファイルが残っています。

う〜〜ん。そういえば、grepの最新バージョン(GNU grep 2.5.3)を入れようとしたけど、
make[1]: Leaving directory `/export/home/ponpon/grep-2.5.3/intl'
Making install in po
make[1]: Entering directory `/export/home/ponpon/grep-2.5.3/po'
/./install-sh -c -d //usr/local/share
make[1]: /./install-sh: Command not found
make[1]: *** [install-data-yes] Error 127
make[1]: Leaving directory `/export/home/ponpon/grep-2.5.3/po'
make: *** [install-recursive] Error 1
ってなって、うまくMakefileが作成されずにmake installできなかったので、スクリプトを見るのを面倒に思って
grep-2.4.2でごまかした覚えがあります。
ためしに/usr/local/binのgrepを外してman man ・・・
お! 動いた。。。
どうもgrepの2.4.2がSolaris9の今のmanと相性が良くないのでしょうか、純正のgrepなら動くようです。
そこで、grepの最新バージョン(GNU grep 2.5.3)を再度解凍して、makeして、po/Makefileのinstall-shの呼び出す行を下のように修正してインストールして、
# cd po;vi Makefile
mkdir_p = $(top_builddir)/./install-sh -c -d を
mkdir_p = ../install-sh -c -d
にしてmake install
そして。。再度manを動かしてみました。。。
お! 動いた。。。。
やはり、手を抜かずきちんと最新バージョンを入れるべきでしたという教訓でした。。。
おしまい。。
Solaris9は久々な感じですが、Solaris10のようなカーネルがダイナミックに作られたりsvcadmで管理したりというような気持ち悪さが無くて、純粋にUNIXの知識が使える素直さが好きです。
それはさておき、まあ、いつものようにGNUツールを入れてメールシステムをデフォルトのSendmailのパッケージを削除し、Postfixを入れてと・・・としていましたが、ふと築くとmanコマンドが動かなくなっています。。
bash-3.2# man xntpd
Reformatting page. Please Wait...bash-3.2#
# truss man man
execve("/usr/bin/man", 0xFFBFFE84, 0xFFBFFE90) argc = 2
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF3A0000
......
lstat64("/tmp/sman_7_aGnn", 0xFFBFC2A8) Err#2 ENOENT
open("/tmp/sman_7_aGnn", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
sigfillset(0xFF342940) = 0
sigprocmask(SIG_BLOCK, 0xFFBFC314, 0xFFBFC304) = 0
sigaction(SIGCLD, 0xFFBFC1B8, 0xFFBFC2C4) = 0
vfork() = 6765
sigaction(SIGINT, 0xFFBFC1B8, 0xFFBFC26C) = 0
sigaction(SIGQUIT, 0xFFBFC1B8, 0xFFBFC24C) = 0
waitid(P_PID, 6765, 0xFFBFC158, WEXITED|WTRAPPED|_WNOCHLD) = 0
sigaction(SIGINT, 0xFFBFC1B8, 0x00000000) = 0
sigaction(SIGQUIT, 0xFFBFC1B8, 0x00000000) = 0
sigaction(SIGCLD, 0xFFBFC1B8, 0x00000000) = 0
sigprocmask(SIG_SETMASK, 0xFFBFC304, 0x00000000) = 0
fstat64(5, 0xFFBFC2D0) = 0
fstat64(5, 0xFFBFC178) = 0
ioctl(5, TCGETA, 0xFFBFC25C) Err#25 ENOTTY
read(5, 0x0002E404, 8192) = 0
llseek(5, 0, SEEK_CUR) = 0
close(5) = 0
close(4) = 0
close(3) = 0
_exit(0)
#
なんてやってみましたが、どうも一時ファイルを作ったところで、なんかをforkして落ちているみたいです。
# cd /tmp
# ls
total 15
-rw------- 1 ponpon other 0 Oct 7 14:34 mp.Gaqrn
-rw------- 1 root other 0 Oct 7 14:39 mp18aiFn
-rw------- 1 ponpon other 0 Oct 7 14:31 mp37aqpn
....
-rw------- 1 ponpon other 0 Oct 7 14:34 sman__Gaqrn
-rw------- 1 ponpon other 0 Oct 7 14:34 sman_aJaGqn
-rw------- 1 ponpon other 0 Oct 7 14:37 sman_k0aGxn
-rw------- 1 root other 0 Oct 7 14:26 sman_kcaGjn
-rw------- 1 root other 0 Oct 7 14:26 sman_oxaWin
確かに/tmpにいっぱい変なファイルが残っています。
う〜〜ん。そういえば、grepの最新バージョン(GNU grep 2.5.3)を入れようとしたけど、
make[1]: Leaving directory `/export/home/ponpon/grep-2.5.3/intl'
Making install in po
make[1]: Entering directory `/export/home/ponpon/grep-2.5.3/po'
/./install-sh -c -d //usr/local/share
make[1]: /./install-sh: Command not found
make[1]: *** [install-data-yes] Error 127
make[1]: Leaving directory `/export/home/ponpon/grep-2.5.3/po'
make: *** [install-recursive] Error 1
ってなって、うまくMakefileが作成されずにmake installできなかったので、スクリプトを見るのを面倒に思って
ためしに/usr/local/binのgrepを外してman man ・・・
どうもgrepの2.4.2がSolaris9の今のmanと相性が良くないのでしょうか、純正のgrepなら動くようです。
そこで、grepの最新バージョン(GNU grep 2.5.3)を再度解凍して、makeして、po/Makefileのinstall-shの呼び出す行を下のように修正してインストールして、
# cd po;vi Makefile
mkdir_p = $(top_builddir)/./install-sh -c -d を
mkdir_p = ../install-sh -c -d
にしてmake install
そして。。再度manを動かしてみました。。。
お! 動いた。。。。
やはり、手を抜かずきちんと最新バージョンを入れるべきでしたという教訓でした。。。
おしまい。。
2008年09月26日
Pleskサーバでのサブドメイン。。。
Linux上で、Pleskのサーバ管理システムの8.3を使っているのだけれども取得しているドメインに、サブドメインを付け加えて宣言したところ、どうも、サブドメインへのアクセスがうまくいきません。
親ドメインも同じPleskのサーバで管理しているのですが、どうも、きれいにNSレコードが宣言されていないようです。
実験的に、zxcvbn.jp なるドメインを登録してみると、
/var/named/run-root/var に
zxcvbn.jp なるゾーンファイルができます。
; *** This file is automatically generated by Plesk ***
$TTL 86400
@ IN SOA ns.zxcvbn.jp. info.ponpokoponpokopon.jp. (
1222396583 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
10800 ) ; Minimum
zxcvbn.jp. IN NS ns.zxcvbn.jp.
zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
webmail.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
mail.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ns.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ftp.zxcvbn.jp. IN CNAME zxcvbn.jp.
zxcvbn.jp. IN MX 10 mail.zxcvbn.jp.
って感じです。シリアルは、YYYYMMDDXXな感じじゃないんですね。(いまのバージョンの8.6では、この番号付けに対応しているようです。)
サブドメインのtest.zxcvbn.jp を追加してみると、
サブドメインは、
; *** This file is automatically generated by Plesk ***
$TTL 86400
@ IN SOA ns.test.zxcvbn.jp. info.ponpokoponpokopon.jp. (
1222397188 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
10800 ) ; Minimum
test.zxcvbn.jp. IN NS ns.test.zxcvbn.jp.
test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
webmail.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
mail.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ns.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ftp.test.zxcvbn.jp. IN CNAME test.zxcvbn.jp.
test.zxcvbn.jp. IN MX 10 mail.test.zxcvbn.jp.
って感じで作成され、かつ、親ドメインのゾーンが勝手に更新され、
test.zxcvbn.jp. IN NS ns.test.zxcvbn.jp.
が追加されます。このレコードは、親のゾーン側のPlesk画面には反映されません!(ちょっと、ショックですよね。管理画面で確認できるレコード以外のレコードがアナウンスされている可能性があるシステムって・・・だって同じホスティングにいるユーザが他人のドメインのサブドメインを作成されても実際のゾーン情報を見ないとわからないんですから、、ちょっとPlesk8.3の時点では怖いシステムかも、、、
)
それに、追加してくれているのはいいのですが、NSレコードの行き先も参照すべきゾーンにあるネームサーバ名になっているので当然名前解決できずにサブドメインがアクセスできないようです。
サブドメイン側のNSの宣言している部分に以下を追加して、
test.zxcvbn.jp. NS plesk.no.server.mei.
として宣言したら、サブドメインが呼び出せるようになりました。
まだまだ、Pleskには進化の余地がありそうです。いいシステムなんですが。。。
では、おしまい。。
親ドメインも同じPleskのサーバで管理しているのですが、どうも、きれいにNSレコードが宣言されていないようです。
実験的に、zxcvbn.jp なるドメインを登録してみると、
/var/named/run-root/var に
zxcvbn.jp なるゾーンファイルができます。
; *** This file is automatically generated by Plesk ***
$TTL 86400
@ IN SOA ns.zxcvbn.jp. info.ponpokoponpokopon.jp. (
1222396583 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
10800 ) ; Minimum
zxcvbn.jp. IN NS ns.zxcvbn.jp.
zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
webmail.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
mail.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ns.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ftp.zxcvbn.jp. IN CNAME zxcvbn.jp.
zxcvbn.jp. IN MX 10 mail.zxcvbn.jp.
って感じです。シリアルは、YYYYMMDDXXな感じじゃないんですね。(いまのバージョンの8.6では、この番号付けに対応しているようです。)
サブドメインのtest.zxcvbn.jp を追加してみると、
サブドメインは、
; *** This file is automatically generated by Plesk ***
$TTL 86400
@ IN SOA ns.test.zxcvbn.jp. info.ponpokoponpokopon.jp. (
1222397188 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
10800 ) ; Minimum
test.zxcvbn.jp. IN NS ns.test.zxcvbn.jp.
test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
webmail.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
mail.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ns.test.zxcvbn.jp. IN A 2XX.2YY.2ZZ.10
ftp.test.zxcvbn.jp. IN CNAME test.zxcvbn.jp.
test.zxcvbn.jp. IN MX 10 mail.test.zxcvbn.jp.
って感じで作成され、かつ、親ドメインのゾーンが勝手に更新され、
test.zxcvbn.jp. IN NS ns.test.zxcvbn.jp.
が追加されます。このレコードは、親のゾーン側のPlesk画面には反映されません!(ちょっと、ショックですよね。管理画面で確認できるレコード以外のレコードがアナウンスされている可能性があるシステムって・・・だって同じホスティングにいるユーザが他人のドメインのサブドメインを作成されても実際のゾーン情報を見ないとわからないんですから、、ちょっとPlesk8.3の時点では怖いシステムかも、、、
それに、追加してくれているのはいいのですが、NSレコードの行き先も参照すべきゾーンにあるネームサーバ名になっているので当然名前解決できずにサブドメインがアクセスできないようです。
サブドメイン側のNSの宣言している部分に以下を追加して、
test.zxcvbn.jp. NS plesk.no.server.mei.
として宣言したら、サブドメインが呼び出せるようになりました。
まだまだ、Pleskには進化の余地がありそうです。いいシステムなんですが。。。
では、おしまい。。
2008年09月17日
お! ディスクレバーがおれた。。。もうマルチディスクパックは年かなあ〜
社内のリモートバックアップ用に、SunのマルチディスクパックことSPARCstorage MultiPack 2をUltra5につなげて使っています。
これがふとdmesgにて
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Requested Block: 0 Error Block: 3904
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Vendor: SEAGATE Serial Number: 3E***XZB
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Sense Key: Not Ready
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] ASC: 0x4 (LUN not ready), ASCQ: 0x0, FRU: 0x2
Sep 17 10:56:39 ponpoko scsi: [ID 107833 kern.warning] WARNING: /pci@1f,0/pci@1/pci@1/SUNW,isptwo@4/sd@2,0 (sd2):
Sep 17 10:56:39 ponpoko Error for Command: load/start/stop Error Level: Retryable
なんてメッセージでディスクが一個止まっていました。
おや、まあ、72Gx1と16Gx5のSeagateのチータを入れていて16Gをフリーにしていたのであっさり、
metareplace d** c1t2d0s7 c1t3d0s7でSun DiskSuiteのリカバリはおわりです。(Resyncingは当分終わらないけど)
あとは、サーバ廃棄したとき、不要なディスクを初期化して残してあるのでそれと入れ替えです。
でも、長い間つかっているなあ〜って感じの外接ディスクです。さて、レバーをガリって感じで動かしてみると、あっさり「パリン」でディスクのプラスティック部分が風化(?)して割れて、「あっちっち」なディスクが落ちてしまいました。。。。
まあ、本体は1998年の購入ものだけど、ディスクは2000年ちょうどぐらいのはずだが・・・まあ、シーゲートのチータディスクは熱く
なることで有名だし、8年前も、10年前も、目くそ鼻くそを笑う状態で、あまり責められないか・・・
もう、このディスクは熱風が暑くてエコロジーじゃないので、USBの250Gでも買ってもらってバックアップ用にした方が世界の未来為かなあ〜。。まあ、Ultra5は、遅いけど熱も出ないから逆に縁の下の力持ちなバックアップサーバには最適で、エコかも・・・

これがふとdmesgにて
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Requested Block: 0 Error Block: 3904
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Vendor: SEAGATE Serial Number: 3E***XZB
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] Sense Key: Not Ready
Sep 17 10:56:28 ponpoko scsi: [ID 107833 kern.notice] ASC: 0x4 (LUN not ready), ASCQ: 0x0, FRU: 0x2
Sep 17 10:56:39 ponpoko scsi: [ID 107833 kern.warning] WARNING: /pci@1f,0/pci@1/pci@1/SUNW,isptwo@4/sd@2,0 (sd2):
Sep 17 10:56:39 ponpoko Error for Command: load/start/stop Error Level: Retryable
なんてメッセージでディスクが一個止まっていました。
おや、まあ、72Gx1と16Gx5のSeagateのチータを入れていて16Gをフリーにしていたのであっさり、
metareplace d** c1t2d0s7 c1t3d0s7でSun DiskSuiteのリカバリはおわりです。(Resyncingは当分終わらないけど)
あとは、サーバ廃棄したとき、不要なディスクを初期化して残してあるのでそれと入れ替えです。
でも、長い間つかっているなあ〜って感じの外接ディスクです。さて、レバーをガリって感じで動かしてみると、あっさり「パリン」でディスクのプラスティック部分が風化(?)して割れて、「あっちっち」なディスクが落ちてしまいました。。。。
まあ、本体は1998年の購入ものだけど、ディスクは2000年ちょうどぐらいのはずだが・・・まあ、シーゲートのチータディスクは熱く
もう、このディスクは熱風が暑くてエコロジーじゃないので、USBの250Gでも買ってもらってバックアップ用にした方が世界の未来為かなあ〜。。まあ、Ultra5は、遅いけど熱も出ないから逆に縁の下の力持ちなバックアップサーバには最適で、エコかも・・・
2008年08月21日
Solaris10のBIND 9.3.4-P1のワーニングがうるさいなあ〜
Solaris10のBIND 9.3.4-P1に旧ネームサーバの設定をそのままコピーして使っていたら、/var/adm/messagesファイルにbindを再起動するたびに、
Aug 21 15:15:01 hashichan named[8839]: [ID 873579 daemon.notice] couldn't add command channel ::1#953: address not available
とエントリーが増えてきました。IPv6の::1#953というローカルアドレスのrndcコマンドの使用するポートが有効でないと言っておられます。たしかにIPv6は無効でインストールしているのでそのとおりなのですが、messagesファイルがこれで増えていくのは「ちょっとなあ〜」
って感じです。
そこで、named.confに
key "rndc-key" {
algorithm hmac-md5;
secret "***********==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
をコントロールアドレスとポートを明示的に書いたらIPv6側を呼ばなくなり静かになりました。
。
。
でも、svcs/svcadm/inetadmというSolaris10の管理プログラムはまだ指(?)になじまないなあ〜
Aug 21 15:15:01 hashichan named[8839]: [ID 873579 daemon.notice] couldn't add command channel ::1#953: address not available
とエントリーが増えてきました。IPv6の::1#953というローカルアドレスのrndcコマンドの使用するポートが有効でないと言っておられます。たしかにIPv6は無効でインストールしているのでそのとおりなのですが、messagesファイルがこれで増えていくのは「ちょっとなあ〜」
そこで、named.confに
key "rndc-key" {
algorithm hmac-md5;
secret "***********==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
をコントロールアドレスとポートを明示的に書いたらIPv6側を呼ばなくなり静かになりました。
でも、svcs/svcadm/inetadmというSolaris10の管理プログラムはまだ指(?)になじまないなあ〜
2008年08月01日
お。Netra X1だ!
最近、
Netra X1なるSunのサーバがヤフオクで3000円を切る値段でゲットできます。このマシン、かなり静かで電力も場所もとらず、スピードは500MHzのSPARCと遅いのですが、X環境でなく、sshベースでちょっとテストで動かすには手頃です。でも、OSが入っていないとかなり困ります。
なにせ、このNetra X1 は、CDROMを持ちません。基本はネットワークブートしてインストールするのでしょうが、かなりインストール用のサーバ用意するのが面倒です。
そこで、まずは、近くに昨日セットアップしたSolaris10のUltra5が上がっているので、このディスクを抜いて、Netra X1に入れてboot -rsをしてみました。。。
SunOS Release 5.10 Version Generic_127127-11 64-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Failed to plumb IPv4 interface(s): hme0
The / file system (/dev/rdsk/c0t0d0s0) is being checked.
WARNING - Unable to repair the / filesystem. Run fsck
manually (fsck -F ufs /dev/rdsk/c0t0d0s0).
Jul 31 15:41:59 svc.startd[7]: svc:/system/filesystem/usr:default: Method "/lib/svc/method/fs-usr" failed with exit status 95.
Jul 31 15:41:59 svc.startd[7]: system/filesystem/usr:default failed fatally: transitioned to maintenance (see 'svcs -xv' for details)
Jul 31 15:42:02 svc.startd[7]: svc:/network/physical:default: Method "/lib/svc/method/net-physical" failed with exit status 96.
Jul 31 15:42:02 svc.startd[7]: network/physical:default misconfigured: transitioned to maintenance (see 'svcs -xv' for details)
Hostname: pokochan
Requesting System Maintenance Mode
(See /lib/svc/share/README for more information.)
Console login service(s) cannot run
Root password for system maintenance (control-d to bypass): Type 'go' to resume
まあ、かなりのエラーを出しつつもシングルユーザまでは来れました。でも、fsckがデバイスファイルのリンクがあっていなくてかけられず、リードオンリーマウントされていて何もできません。そのため、デバイスの再作成もできずにっちもさっちもできません。
うーーーん。通常ならCDROMで起動して修正したいところですがCDROMも付いていません。
そこで、Netra X1の2台目のハードディスクを付ける場所に、ためしにUltra5のCDROMをつけてみました。IPLのcdromをさすエイリアスがあっていればブートしそうな気がします。
ok boot cdrom
お!、あっさりSolaris10のインストールCDが立ち上がりインストールが始まりました。(DVD以外に、旧機種のためにCDROMでのインストールメディアを提供してくれているSunには頭が下がります。)
お。これで使えそうです。でも、昨日から2回目のSolaris10のインストールですが、やはり遅いなあー。デベロッパーを選択しても5Gバイトものインストールが行われます。
いったい何が入っているんだろうって感じですよね。Solaris2.4のころは、デベロッパーを選択した場合のインストール容量は、300M前後だった気がするのにかなりインフレーションしています。
まあ、これで、3000円を切るNetra X1を使用できます。めでたしめでたしです。
※Solaris10って、起動で使用している使用中のディスクは、起動中にパーティション変更ができないのですね。Solaris10をデフォルトでインストールするとかなり/export/homeにディスクの容量持っていかれるので、それを再分割して/varや/usr/localに振りたかったのですが、CDROMで起動してformatコマンドを使わないと変更できませんでした。昔はWARNINGだけで済んでいた気がするのですが。。。
なにせ、このNetra X1 は、CDROMを持ちません。基本はネットワークブートしてインストールするのでしょうが、かなりインストール用のサーバ用意するのが面倒です。
そこで、まずは、近くに昨日セットアップしたSolaris10のUltra5が上がっているので、このディスクを抜いて、Netra X1に入れてboot -rsをしてみました。。。
SunOS Release 5.10 Version Generic_127127-11 64-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Failed to plumb IPv4 interface(s): hme0
The / file system (/dev/rdsk/c0t0d0s0) is being checked.
WARNING - Unable to repair the / filesystem. Run fsck
manually (fsck -F ufs /dev/rdsk/c0t0d0s0).
Jul 31 15:41:59 svc.startd[7]: svc:/system/filesystem/usr:default: Method "/lib/svc/method/fs-usr" failed with exit status 95.
Jul 31 15:41:59 svc.startd[7]: system/filesystem/usr:default failed fatally: transitioned to maintenance (see 'svcs -xv' for details)
Jul 31 15:42:02 svc.startd[7]: svc:/network/physical:default: Method "/lib/svc/method/net-physical" failed with exit status 96.
Jul 31 15:42:02 svc.startd[7]: network/physical:default misconfigured: transitioned to maintenance (see 'svcs -xv' for details)
Hostname: pokochan
Requesting System Maintenance Mode
(See /lib/svc/share/README for more information.)
Console login service(s) cannot run
Root password for system maintenance (control-d to bypass): Type 'go' to resume
まあ、かなりのエラーを出しつつもシングルユーザまでは来れました。でも、fsckがデバイスファイルのリンクがあっていなくてかけられず、リードオンリーマウントされていて何もできません。そのため、デバイスの再作成もできずにっちもさっちもできません。
うーーーん。通常ならCDROMで起動して修正したいところですがCDROMも付いていません。
そこで、Netra X1の2台目のハードディスクを付ける場所に、ためしにUltra5のCDROMをつけてみました。IPLのcdromをさすエイリアスがあっていればブートしそうな気がします。
ok boot cdrom
お!、あっさりSolaris10のインストールCDが立ち上がりインストールが始まりました。(DVD以外に、旧機種のためにCDROMでのインストールメディアを提供してくれているSunには頭が下がります。)
お。これで使えそうです。でも、昨日から2回目のSolaris10のインストールですが、やはり遅いなあー。デベロッパーを選択しても5Gバイトものインストールが行われます。
いったい何が入っているんだろうって感じですよね。Solaris2.4のころは、デベロッパーを選択した場合のインストール容量は、300M前後だった気がするのにかなりインフレーションしています。
まあ、これで、3000円を切るNetra X1を使用できます。めでたしめでたしです。
※Solaris10って、起動で使用している使用中のディスクは、起動中にパーティション変更ができないのですね。Solaris10をデフォルトでインストールするとかなり/export/homeにディスクの容量持っていかれるので、それを再分割して/varや/usr/localに振りたかったのですが、CDROMで起動してformatコマンドを使わないと変更できませんでした。昔はWARNINGだけで済んでいた気がするのですが。。。
2008年07月23日
お〜ファイルサイズの2GBの壁がこんなところにも。。。
Linuxといわず、多くのOSで、たまにMAXファイルサイズ2GBの壁に当たることがあります。
Linuxのユーザエリアのバックアップにzip(InfoZip)がRedhatに入っているので便利だと使っていたのですがバックアップ対象のディレクトリによってはアーカイブしたファイルが2GBを超えてしまい、
-rw------- 1 root root 2147483647 6月 1 05:42 ziAgmx04
-rw------- 1 root root 2147483647 3月 16 05:42 ziC5oDVU
って感じの意味不明なファイル名の2GBもあるスクラッチファイルが毎回、残ってしまいファイルシステムを圧迫し、ついにシステムを止まらせてしまったことがあります。
困ったものだ・・・って感じで、複数に分けてバックアップしていたのですが、ふと気付くと、InfoZipのページでZip 3.0のアナウンスがされていて、large-file support (i.e., > 2GB) となっていました。
おおおお〜〜〜。ちょうどいいタイミングです。これでバックアップを置き換えることにして安心できるようになりました。。
RedhatES3のrpmパッケージって、cpioとかもLFSに対応していないバイナリが結構あります。せっかくのext2/3ファイルシステムがもったいないですよね。。。
注意!)解凍ソフトであるunzipもベータ版(unzip60cをつかいました。:unzip60dは、warning: lchmod is not implemented and will always failといわれてmakeできなかった。)が当然必要です。
古いunzipのままだと2G超えるファイルは、ファイルを指定しても、ファイルが見つからないって言われてしまいます。
Linuxのユーザエリアのバックアップにzip(InfoZip)がRedhatに入っているので便利だと使っていたのですがバックアップ対象のディレクトリによってはアーカイブしたファイルが2GBを超えてしまい、
-rw------- 1 root root 2147483647 6月 1 05:42 ziAgmx04
-rw------- 1 root root 2147483647 3月 16 05:42 ziC5oDVU
って感じの意味不明なファイル名の2GBもあるスクラッチファイルが毎回、残ってしまいファイルシステムを圧迫し、ついにシステムを止まらせてしまったことがあります。
困ったものだ・・・って感じで、複数に分けてバックアップしていたのですが、ふと気付くと、InfoZipのページでZip 3.0のアナウンスがされていて、large-file support (i.e., > 2GB) となっていました。
おおおお〜〜〜。ちょうどいいタイミングです。これでバックアップを置き換えることにして安心できるようになりました。。
RedhatES3のrpmパッケージって、cpioとかもLFSに対応していないバイナリが結構あります。せっかくのext2/3ファイルシステムがもったいないですよね。。。
注意!)解凍ソフトであるunzipもベータ版(unzip60cをつかいました。:unzip60dは、warning: lchmod is not implemented and will always failといわれてmakeできなかった。)が当然必要です。
古いunzipのままだと2G超えるファイルは、ファイルを指定しても、ファイルが見つからないって言われてしまいます。
2008年07月17日
今日はまだお仕事中・・・
今日は、まだお仕事中(AM1:30)です。。
昨日の午後の八時くらいより、SUNサーバのNetraX1なるしょぼいサーバがシーゲートの40GBのIDEのハードディスクがぐずってトラブってしまいました。
どうもアドレスが41XXXXX(HEX)から42XXXXX(HEX)のアドレス部分があちこちで読めなくなっています。仕方なく会社まで持って帰って、今はもう使っていないSunのコバルトラックの内蔵していたIDEの40GBメーカもタイプもおなじだったので、こちらにデータを移しています。
# format
Searching for disks...WARNING: /pci@1f,0/ide@d/dad@2,0 (dad1):
corrupt label - wrong magic number
WARNING: /pci@1f,0/ide@d/dad@2,0 (dad1):
corrupt label - wrong magic number
done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,0/ide@d/dad@0,0
1. c0t2d0
/pci@1f,0/ide@d/dad@2,0
この/export/homeのコピーがまだなかなか終わりません。もうそろそろ2時間たつのになあ〜〜。
ネムネムです・・・
昨日の午後の八時くらいより、SUNサーバのNetraX1なるしょぼいサーバがシーゲートの40GBのIDEのハードディスクがぐずってトラブってしまいました。
どうもアドレスが41XXXXX(HEX)から42XXXXX(HEX)のアドレス部分があちこちで読めなくなっています。仕方なく会社まで持って帰って、今はもう使っていないSunのコバルトラックの内蔵していたIDEの40GBメーカもタイプもおなじだったので、こちらにデータを移しています。
# format
Searching for disks...WARNING: /pci@1f,0/ide@d/dad@2,0 (dad1):
corrupt label - wrong magic number
WARNING: /pci@1f,0/ide@d/dad@2,0 (dad1):
corrupt label - wrong magic number
done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,0/ide@d/dad@0,0
1. c0t2d0
/pci@1f,0/ide@d/dad@2,0
この/export/homeのコピーがまだなかなか終わりません。もうそろそろ2時間たつのになあ〜〜。
ネムネムです・・・
2008年07月11日
ふと、REDHATにDTCさんのRadiusサーバを入れてみた。
いつも認証サーバは、古いSUNのサーバで動かしていたのだけれど、さすがに、この時勢、もうあまりフリーなSUNのサーバ(かさ張らない1Uの)が手に入らず、古い1UのPCサーバ(PentiumIIIの1Gx2)で、動かすことにしました。
SPARC/Solarisマシンは、とても好きなんだけど、最後までSPARCを頑張って押していてくれた富士通さん、ROSSのHyperSPARCを吸収してからずーーーと頑張ってくれていたのですがもうそろそろって感じでしょうか。。。HPさんのPA−RISCとともにもうそろそろ役割を終えてしまいそうな感じです。残る古からつづく汎用のRISC系譜は、IBMのPOWER6チップだけなのでしょうか。。さびしいですよね。。
さて、話は戻って、この無印の1UのPC(x86)サーバのOSは、Redhat ES4 です。
RADIUSは、デフォルトでFreeRadiusなる認証サーバが入っていたのだけれども、設定ファイルなどを見直すのも面倒だし、昔・・昔・・・その昔・・・ダウンロードしてあったDTCさんのRadiusサーバを入れてみました。
freeradiusをrpmで消して、radiusd-dtc2.03pを解凍、configure などもないソースなのですが、
cd radiusd-dtc2.03p/src/Linux
して、それほど難しくないMakefileなので修正してmakeしてみました。
最初、dbm周りでエラーが出ていましたが、DBMLIBS= -lgdbm にしてたまに、DB関係のincludeファイルが見つからないエラーもgdbm/xxx.h に編集しなおして、makeはあっさり終了しました。
make install して、実行もあっさり終了です。
でも、
radping するとタイムアウトになります。
結構悩みました。なにせradiusdをDebugモードに入れてテストしても、あげたRadiusサーバは、耳がFireWallにでも拒まれているように、なにもradpingに足してメッセージを言ってきません。もう小説『怪談』にでてくる「耳なし芳一」状態です。
最終的にtcpdumpでほかのマシンからradpingして、どうもポート番号がListenされていないようなので、netstatで確認したら、違うポートで上がっていた。
とうもfreeradiusというよりは、最近のradiusのポート番号が変わっているためか、/etc/servicesに記述されている(RFC 2865)、
$ grep radius /etc/services
datametrics 1645/tcp old-radius # datametrics / old radius entry
datametrics 1645/udp old-radius # datametrics / old radius entry
radius 1812/tcp # Radius
radius 1812/udp # Radius
radius-acct 1813/tcp radacct # Radius Accounting
radius-acct 1813/udp radacct # Radius Accounting
が、DTCのRadius(というよりradpingのデフォルト)で前提にしている、
$ grep radius /etc/services
radius 1645/udp radiusd
radacct 1646/udp radiusd-accounting
と変わってきているんですね。DTC Radiusのmake install も、radius/radacctのレコードがあるので変更せずあっさり抜けていたのに、見直して気づきました。
結構、service名が同じでポートが変わっていると、気付かないものです。一時間ほど頭をかしげていました。。つい、エラーも出てこないのでMakefileの記述を間違えたはずはないのだが・・・とか別の方面に当たってしまいました。
まだまだ未熟な「はしちゃん」です。。
SPARC/Solarisマシンは、とても好きなんだけど、最後までSPARCを頑張って押していてくれた富士通さん、ROSSのHyperSPARCを吸収してからずーーーと頑張ってくれていたのですがもうそろそろって感じでしょうか。。。HPさんのPA−RISCとともにもうそろそろ役割を終えてしまいそうな感じです。残る古からつづく汎用のRISC系譜は、IBMのPOWER6チップだけなのでしょうか。。さびしいですよね。。
さて、話は戻って、この無印の1UのPC(x86)サーバのOSは、Redhat ES4 です。
RADIUSは、デフォルトでFreeRadiusなる認証サーバが入っていたのだけれども、設定ファイルなどを見直すのも面倒だし、昔・・昔・・・その昔・・・ダウンロードしてあったDTCさんのRadiusサーバを入れてみました。
freeradiusをrpmで消して、radiusd-dtc2.03pを解凍、configure などもないソースなのですが、
cd radiusd-dtc2.03p/src/Linux
して、それほど難しくないMakefileなので修正してmakeしてみました。
最初、dbm周りでエラーが出ていましたが、DBMLIBS= -lgdbm にしてたまに、DB関係のincludeファイルが見つからないエラーもgdbm/xxx.h に編集しなおして、makeはあっさり終了しました。
make install して、実行もあっさり終了です。
でも、
radping するとタイムアウトになります。
結構悩みました。なにせradiusdをDebugモードに入れてテストしても、あげたRadiusサーバは、耳がFireWallにでも拒まれているように、なにもradpingに足してメッセージを言ってきません。もう小説『怪談』にでてくる「耳なし芳一」状態です。
最終的にtcpdumpでほかのマシンからradpingして、どうもポート番号がListenされていないようなので、netstatで確認したら、違うポートで上がっていた。
とうもfreeradiusというよりは、最近のradiusのポート番号が変わっているためか、/etc/servicesに記述されている(RFC 2865)、
$ grep radius /etc/services
datametrics 1645/tcp old-radius # datametrics / old radius entry
datametrics 1645/udp old-radius # datametrics / old radius entry
radius 1812/tcp # Radius
radius 1812/udp # Radius
radius-acct 1813/tcp radacct # Radius Accounting
radius-acct 1813/udp radacct # Radius Accounting
が、DTCのRadius(というよりradpingのデフォルト)で前提にしている、
$ grep radius /etc/services
radius 1645/udp radiusd
radacct 1646/udp radiusd-accounting
と変わってきているんですね。DTC Radiusのmake install も、radius/radacctのレコードがあるので変更せずあっさり抜けていたのに、見直して気づきました。
結構、service名が同じでポートが変わっていると、気付かないものです。一時間ほど頭をかしげていました。。つい、エラーも出てこないのでMakefileの記述を間違えたはずはないのだが・・・とか別の方面に当たってしまいました。
まだまだ未熟な「はしちゃん」です。。

