Snow Leopard移行メモ
タイムマシン使用。同名ユーザーでインストールした時の移行方法メモ
SSH2対応 かつ UTF-8対応の TeraTerm: http://sourceforge.jp/projects/ttssh2/
以下のマクロを実行すると、初回だけユーザー名とパスワードを入力するダイアログが表示される。
C:\Data\myserver.dat というファイルが作られ(ファイル名は何でもよい)、ユーザー名とパスワードが C:\Data\myserver.dat に暗号化された状態で保存される。
ファイル名を myserver.ttl で作成、右クリック→プログラムから開く で、TeraTerm.exe と一緒にインストールされるTTPMacro (C:\Program Files\teraterm\ttpmacro.exe)を選択。「この種類のファイルを開くときは、選択したプログラムをいつも使う」を有効にすれば、ダブルクリックなり、コマンドラインで「myserver.ttl」を実行するなりで、さくっとログインできる。おめでとう。
C:\Data\myserver.dat
hostname = 'XXX.XXX.XXX.XXX'
getpassword '' 'UserName' myname
C:\Data\myserver.dat
getpassword '' 'Password' mypassword
msg = hostname
strconcat msg ':22 /ssh /2 /auth=password /user='
strconcat msg myname
strconcat msg ' /passwd='
strconcat msg mypassword
connect msg
西村自宅構成:ThinkPad(WindowsXP) から MacBookに、Teratermでログインできると便利.だ、ということで、
STEP1 「c:\bat\MacBook.ttl
」に上記マクロを保存(c:\bat にはPATHが通っている状態)
STEP2 環境変数 PATHEXT に .ttl
を追加
STEP3 コマンドラインで \> macbook
(mac[TAB][Enter]
) でMacBookにログインしたTeraTermが起動
コマンドラインで作業しているとは限らないので、クリックしやすい場所にショートカットも作ってあります。
| 固定リンク
本体は1行。処理結果はddnsupdateresult.txtに保存(curl -o ファイル名)。
#! /bin/bash
curl -s -o ddnsupdateresult.txt "http://free.ddo.jp/dnsupdate.php?dn=XXXXXXXX&ip=$(curl -s http://info.ddo.jp/remote_addr.php | cut -s -d: -f2)&pw=XXXXXXXX"
やっていないけど1:
ddnsupdateresult.txtに「FAIL:」という文字列が出力されていたらエラー、「SUCCESS:」という文字が出力されていたら成功、という判定でいいんじゃなかろうか。
やっていないけど2:
curlコマンドがない場合、wgetコマンドでも同じようなことができるはず(結果を標準出力に出すには、ファイル名として「-」を指定、つまり「wget -O - "http://……"
」で良いはず)。
私は、とりあえず結果を画面に出力させようと思ったので、curlの-oオプションを外し、iconvで文字コードを変換してsedでタグを除去。
#! /bin/bash
curl -s "http://free.ddo.jp/dnsupdate.php?dn=XXXXXXXX&ip=$(curl -s http://info.ddo.jp/remote_addr.php | cut -s -d: -f2)&pw=XXXXXXXX" | iconv -f eucJP -t UTF8 | sed "s/<[^>]*>//g;/^$/d"
*
プロセス
1.IPアドレス更新には、ドメイン名とパスワードの他に現在のグローバルIPアドレスが必要
2.Dynamic DO!.jpでは「http://info.ddo.jp/remote_addr.php」でグローバルIPアドレスが取得できるようにしてくれているようだ
コマンドラインで実行してみる(以下ずっとコマンドライン)。
curl http://info.ddo.jp/remote_addr.php
curlの処理ステイタスが表示されるのを避けるためのオプションを探す(curl --help)。-s
オプションだとわかった。
実行。
curl -s http://info.ddo.jp/remote_addr.php
結果、どうやら「改行」「REMOTE_ADDR:125.xxx.xxx.xxx」と出力されている。欲しいのは「125.xxx.xxx.xxx」部分。
考えたこと:
1.「REMOTE_ADDR:125.xxx.xxx.xxx」の行の「:」以降だけ出力するフィルタを作ろう
2. cutコマンドで、フィールド区切りを「:」にして(-d:
)、2番目のフィールドを出力すればよいだろう(-f2
)
3.空の行は出力しないようにするオプションを「man cut」で探す。こういうオプションは大抵あるはず→-s
オプションとわかった
試してみる。
curl -s http://info.ddo.jp/remote_addr.php | cut -s -d: -f2
無事「125.xxx.xxx.xxx」が出力されたようなので、「curl "http://free.ddo.jp/dnsupdate.php?dn=ドメイン名&ip=IPアドレス&pw=パスワード"」を開くことにする。
「IPアドレス」部分をさっきの「curl … | cut …」の結果と置き換えるために、「$()
」を使うことにする。具体的には、「$(curl … | cut …)
」のように$(と)の間にそのまま入れる。
(環境変数に保存しておけば別の用途にも便利かなと思ったけど使いたいと思ったことがほとんどなかったのでやめた)
curl -s "http://free.ddo.jp/dnsupdate.php?dn=XXXXXXXX&ip=$(curl -s http://info.ddo.jp/remote_addr.php | cut -s -d: -f2)&pw=XXXXXXXX"
試してみる。
文字化けしているけどSUCCESS:という表示があるのでおそらく成功(curl -s -o ファイル名 "http://…"
で結果をファイルに出力して確認可能)。
メッセージがおそらく日本語EUCで出力されており、UTF-8にすればTerminalでも化けずに表示されるだろうから、iconvで変換(iconv -f eucjp -t utf8
)してみよう。
curl -s "http://free.ddo.jp/dnsupdate.php?dn=XXXXXXXX&ip=$(curl -s http://info.ddo.jp/remote_addr.php | cut -s -d: -f2)&pw=XXXXXXXX" | iconv -f eucjp -t utf8
OK。
なんとなく、出力結果からタグ(<〜>)を除去したくなる。
安直にやるとこう。
sed "s/<.*>//"
sedは最長一致なので、タグとタグに挟まれた部分(<xxx>〜</xxx>)もきれいさっぱりなくなっていて、なんとなく結果オーライな気がしてしまったが、blogに書くので最短一致になるよう修正。
sed "s/<[^>]*>//g"
最初にやった正規表現:
<.*>
は、「<という文字、任意の1文字、←その0回以上の繰り返し、>という文字」となっている箇所にマッチする。<a>でも<aaa>でも<aaa<aaa>aaa>でもマッチする。
「<aaa<aaa>aaa>」は「<aaa<aaa>」でも「<aaa<aaa>aaa>」でも条件に合う。この場合、できるだけ長いパターンが採用される(これが最長一致)。
2つめの正規表現(<[^>]*>
):
[^>]
は、「>という文字以外」という意味
[^>]*
は、「>という文字以外、←その0回以上の繰り返し」という意味
したがって、<[^>]*>
は、「<という文字、>という文字以外、←その0回以上の繰り返し、>という文字」となっている箇所にマッチする。
先ほどの<aaa<aaa>aaa>の場合、1つめの>が登場した地点(<aaa<aaa>)でパターンから外れる。結果、最短一致になる(一番短くなるパターンが採用されるのが最短一致)
※sedは最短一致と最長一致を指定し分ける正規表現やオプションが使用できない
1行の中に「<ほにゃらら>」が何回も登場するので、s///
ではなくs///
で置き換えるようにする。gは複数回適用させる、という意味(gがついていないと、1回置き換えたら終了し次の行に処理が移ることになる)。
g
がないとこうなる。
せっかくなので、空行を除去したくなった。
空行は「^$
」で表すことができる。^
は行頭、$
は行末、つまり^$
は行頭のあとすぐ行末になってる行すなわち空行に一致。
^$
というパターンに一致する行(「/^$/
」と表現)を削除(d
)。この処理を、先ほどの「s///g
」の後ろにくっつける。区切り文字は「;
」。
sed "s/<[^>]*>//g;/^$/d"
さらなる細工をしようと思った場合
・タグの間に改行があるとうまく除去できない(いったん改行をとっぱらってから置き換え処理、というのが簡単)
・空行じゃなくて空白文字だけの行どうしたい?(残して良いような気もするし、削除しても良い気もするし)
・<br>を改行に置き換えたくなる
・っていうかSUCCESSかFAILの部分だけ表示すればよくね? ← これだ
*
じゃぁ今までのsed部分を全部忘れて、
まずはSUCCESSについて
sed -n "s/^SUCCESS:.*/SUCCESS/p"
「行頭にSUCCESS:という文字列」、「任意の文字とその0回以上の繰り返し」に合致する行でSUCCESSと出力(p
)、それ以外の行は出力しない(-n
オプション)。FAILDも同様に書いてくっつける。
sed -n "s/^SUCCESS:.*/SUCCESS/p;s/^FAIL:.*/FAIL/p"
実行してみる。
*
#気づいたこと
Mac OS X 10.5.5 に収録されているsedコマンドは、正規表現の¥|
(または、の意)に対応していない。↓バージョン3.02(コマンド名sed302)との比較画面
sed302は、以前、OSX収録版のsedコマンドで日本語処理が微妙におかしかった時、Ver3.02のソースをダウンロードしてコンパイルしたもの。念のため普段はオリジナル版を使うようにしようと思いsed302という名前にしておいた。
| 固定リンク
#12/3に2008/11/10の日記からコピーして投稿。作業まとめがこの記事のラストにあります
Mac OS X 10.5.5 のターミナルにて、lsの結果をsedで変換しようとしたら、日本語の処理が怪しい感じだったので別バージョンをコンパイルしてみた。
(怪しい感じの内容:¥(.*¥)
にマッチした中に日本語が入るとCTRL-Cしないと終了できなくなる、ただし文字列または位置によるようだ ←なまじうまく動いていたケースもあったため悩んだ)
ftp://ftp.gnu.org/pub/gnu/sed/ より、sed-4.1.5.tar.gzをダウンロード。configureで
sed: 1: "install_sh=/Users/meg ...": command i expects ¥ followed by text
なるメッセージ。
sed: 1: "install_sh=/Users/meg ...": command i expects ¥ followed by text
メッセージで検索して、同じエラーに悩んでいるらしき人を発見。
http://blog.apokalyptik.com/2008/04/24/building-sed-for-osx/
この人は、まず sed-3.0.2, そして 4.1.5
をインストールしたようだ。
ftp://ftp.gnu.org/pub/gnu/sed/ より、sed-3.02.tar.gz(上記URLには3.0.2と書かれているがおそらく3.02だと思われる)をダウンロード。configureでエラーがでなかったのでmake。本環境のsed(/usr/bin/sed)を置き換えるのが嫌だったため(※今後の原稿書きとの兼ね合いを考慮)、コンパイルされたsed(ソースディレクトリ内のsedディレクトリに生成される)を~/binにsed302という名前でコピー。このver3.02で自分の目的の処理ができたので、ここまでで終了とした。へたれ上等。
作業まとめ
| 固定リンク
Windows XPでX Server第1弾:WiredX(ブラウザにて)
WiredX.netの[Sign Up]でMember NameとPasswordを設定し、[Sign In]でログインする。
ログインすると「Personal Page for WiredX」が開くので、キーボードと文字コードを設定する。
[Start WiredX]をクリックすると、ブラウザ内でXサーバ(WiredX)が起動する。
Telnetで接続し(→Tera Term Pro)、環境変数DISPLAYでWindows XPマシン(WiredXを実行しているマシン)のIPアドレスとディスプレイ番号(WiredXのデフォルトは2)を設定する。
$ export DISPLAY=192.168.1.61:2 ・・・WiredXのIPアドレスとディスプレイ番号を設定
$ xterm & ・・・Xクライアントプログラムを実行
終了する場合
$ kill プロセスID
※ログインするとDownloadでJava環境用の実行ファイル(Jarファイル)がダウンロードできるようになる。
| 固定リンク
望み:OS X(Leopard)マシンにWindowsXPマシンからログインしたい
Part1:グラフィカルに→VNC利用
Part2:テキストで→TeraTerm Pro(SSH2+telnet)を利用
Part2:Telnet(TeraTerm Pro)
(1)OS Xで「リモートログイン」を有効にする
「システム環境設定」の「インターネットとネットワーク」にある「共有」で、「リモートログイン」を有効にする。
(2)XPからTeraTerm Proで接続する
SSH2対応のTeraTerm ProをTeraTerm Open Source ProjectのUTF-8 TeraTerm Pro with TTSSH2プロジェクトページよりダウンロードし、インストール。
UTF-8 Tera Term Proを起動すると、「新しい接続」ダイアログが開くので、「ホスト(T):」にOS Xマシンのコンピュータ名またはIPアドレス(「システム環境設定」の「ネットワークで」画面で確認できる)を入力する。「サービス:」で「SSH」、「SSHバージョン(V):」で「SSH2」を選択し、[OK]をクリック。
「SSH認証」ダイアログが開くので、OS Xのユーザアカウントとパスワードを入力し、[OK]をクリック。
*
| 固定リンク
★TightVNCの場合(Mac OS X側の設定は同じ)
RealVNCを使ってWindowsXPからOS Xに接続したい場合、[Options...]→「Colour/Encoding」タブの「Color level」を「Full(all available colours)」にする。全画面表示からの復帰はF8キー(日本語版も同様)。
RealVNCのDowonloadページよりダウンロード。NameやEmailの入力は省略可能。XP側は接続のみという場合、"Viewer for Windows"で良い。今回使用したのは"VNC Personal Edition Viewer for Windows (x86, x64 & ia64)"。
「Connection Details」ダイアログにて[Options...]→「Colour/Encoding」タブの「Color level」を「Full(all available colours)」に。 毎回この設定を使用する場合は「Load/Save」タブで[Save]。
「Server:」にOS Xのマシン名またはIPアドレスを指定して[OK]。
Warningが出るが、[OK]で可。
ウインドウのサイズに合わせて縮小表示をしたい場合、[Options...]の「Scaling」タブにある「Scale to Windows Size」を選択(Ver4.3以降)。
フルスクリーンから復帰したい場合は、F8キーでメニューを表示し、「Full Screen」をクリック。メニューを呼び出すキーは、[Options...]の「Inputs」ページにある「Menu key」で変更可能。忘れた場合は、OS X側でログアウトすれば良い。
| 固定リンク
★TightVNCの場合(Mac OS X側の設定は同じ)
RealVNCを使ってWindowsXPからOS Xに接続したい場合、[オプション(0)...]→「カラー/エンコーディング」タブの「カラーレベル」を「フル(F)」にする。全画面表示からの復帰はF8キー。
UnderDone | RealVNC日本語版よりダウンロード。XP側は接続のみという場合、インストーラなし版で良い。アーカイヴを展開し、vncviewer.exeを起動。
「接続詳細」ダイアログにて[オプション(0)...]→「カラー/エンコーディング」タブの「カラーレベル」を「フル(F)」に。
毎回この設定で良い場合は「ロード/セーブ」のデフォルト設定で[保存(S)](※通常、色の数が多いと動作が遅くなる)
ウインドウのサイズに合わせて縮小表示をしたい場合、Ver 4.3以降を使用(→動作画面)。
フルスクリーンから復帰したい場合は、F8キーでメニューを表示し、「フルスクリーン(F)」をクリック。メニューを呼び出すキーは、[オプション(O)...]の「入力」ページにある「メニューキー」で変更可能。忘れた場合は、OS X側でログアウトすれば良い。
| 固定リンク
望み:OS X(Leopard)マシンにWindowsXPマシンからログインしたい
Part1:グラフィカルに→VNC利用
Part2:テキストで→TeraTerm Pro(SSH2+telnet)を利用
Part1:VNC
(1)OS Xで「画面共有」を有効にする
「システム環境設定」の「インターネットとネットワーク」にある「共有」で、「画面共有」を有効にする。続いて、[コンピュータ設定...]をクリックし、「他のユーザが画面操作の権限を要求することを許可」と「VNC使用者が画面を操作することを許可」を有効にし、パスワードを設定する。(XPからはこのパスワードを使って接続し、OS Xのアカウントを使ってログインする)
(2)XPからTightVNCで接続する ※RealVNC参考:日本語版(v4.1.2), 英語版(v4.3.2)
TightVNC SoftwareのDownloadページよりダウンロード。XP側は接続のみという場合、ダウンロードするのはViewerで良い(ここではtightvnc-1.3.9_x86_viewer.zipを使用)。
vncviewerを起動すると、「New TightVNC Connection」 ダイアログが開くので、OS XマシンのIPアドレス(OS Xの「画面共有」設定画面で確認できる)を入力し、[Connect]をクリックする。「Standard VNC Authentication」ダイアログが表示されるので、OS Xの「画面共有」→[コンピュータ設定...]で設定したパスワードを入力し[OK]をクリックする。
※普段使い環境でキャプチャしてるため、XPのウィンドウがWindows2000ぽいです。
OS Xで、現在使用中の画面が表示される。OS Xのログイン画面が表示された場合、アカウントを選択しパスワードを入力した所でいったんエラーメッセージでて終了するので、再度vncviewerを実行する。
OS Xの画面をvncviewerのウィンドウサイズに合わせたい場合、ツールバーのオプションボタンで開く「TightVNC Viewer Options」ダイアログの「Connection」ページにある「Display」の「Scale by」で「Auto」を選択する。
フルスクリーンの切り替えはCTRL+ALT+Shift+[F]。キー操作を忘れた場合は、OS Xでログアウトすれば良い。
ログアウトして接続を終了したい場合、OS Xでログアウト(アップルメニューまたはShift+Alt+[Q])する。vncviewerを終了しただけだと、OS X側ではログインしたままの状態となる。
| 固定リンク
望み:Mac miniで、OS XとWindows XPの両方を動かしたい。
方法:Boot Campを使って、OS Xが動作しているマシンにWindows XPをインストールし、DualBoot環境を構築する
Notes:
参考サイト:
Max OS X Leopard - Boot Camp
Boot Campを使ってWindowsをインストールすれば、インターネットでドライバを検索したり、ディスクを作成したりする必要はありません。Boot Campの実行後、LeopardのDVDを挿入するだけで、必要なドライバが自動的にインストールされます。
※Windows Vistaも同じ手順でインストール可能(もちろんSP2済CDを作成する必要はない)。
(1)Mac OS X. 10.5(Leopard)のインストール
LeopardのDVDをセットするとインストーラが起動する。インストール中にアップデートか新規インストールか選択可能。Windows用の領域はBoot Campで作成するので起動ドライブ全てをOS X用に割り当ててもかまわない。
(2)SP2適用済の起動可能なCDの作成(Windows環境にて)
準備:bbie.exeとmkisofs.exe、およびWindows XP SP2ファイルをダウンロードし、作業ディレクトリ(C:\tmpとする)にコピーする
bbie.exe(ブートイメージを抽出するツール):
BBIE - Bart's Boot Image ExtractorのDownloadよりbbie10.zipをダウンロード。bbie.exeをC:\tmpにコピーする
mkisofs.exe(ISOイメージを作成するツール):
CDRecordのFTPサイトよりcdrtools-1.11a12-win32-bin.zipをダウンロード。mkisofs.exeおよびcygwin1.dllをC:\tmpにコピーする
Windows XP SP2ファイル:
Microsoftのサイトよりインストールパッケージ(WindowsXP-KB835935-SP2-JPN.exe)をダウンロードし、C:\tmpにコピーする
CDイメージの作成:
Windows XPのCD-ROMをCDドライブ(J:)にセットする
[スタート]→「ファイル名を指定して実行(R)」でcmdを実行する
コマンドプロンプトにて以下を実行
>cd C:\tmp ・・・(作業ディレクトリに移動)
>md C:\wincd ・・・(Windowsファイルをコピーするディレクトリを作成)
>xcopy J:\ C:\wincd /e ・・・(WindowsファイルをC:\wincdにコピー)
>WindowsXP-KB835935-SP2-JPN.exe /integrate:C:\wincd ・・・(SP2ファイルの適用)
>bbie J: ・・・(Windows CDよりブートイメージを抽出 →image1.binに保存される)
>copy image1.bin C:\wincd ・・・(ブートイメージをWindowsファイルディレクトリにコピー)
>mkisofs -b image1.bin -no-emul-boot -J -N -o winxpsp2.iso C:\wincd ・・・(ISOイメージの作成)
C:\tmpに作成されたISOイメージ(winxpsp2.iso)をCDに焼く:
例えばB's Recorder GOLDの場合、C:\wincd\winxpsp2.isoをトラックウェル("トラックの種類"フィールド)にドラッグ&ドロップして書き込みを実行。
後始末:
Boot CampでWindows XPのインストール作業ができることを確認したら、ダウンロードしたファイルおよびC:\tmpにコピーしたファイル、C:\wincdを削除してもかまわない。
(3)Windows XPのインストール(OS X環境)
Step 1:「アプリケーション」→「ユーティリティ」→「Boot Camp アシスタント」を起動
Step 2:Windowsのインストールを行う
Step 3:Boot Campドライバをインストールする(Windows環境にて)
Notes:
ありがちなできごと:
参考サイト:
Mac ハンドブック:Boot Camp を使って Mac OS X 10.5 Leopard で Windows を利用する
Boot Camp 2.0, Mac OS X 10.5: よくお問い合わせいただくご質問 (FAQ)
*
Boot CampによるOS切り替え
起動時に選択:
「Option (Alt)」キーを押しながらコンピュータを起動する
Mac OS XからWindows XP:
「システム環境設定」の「起動ディスク」で切り替える
Windows XPからMac OS X:
システムトレイの[Boot Camp]アイコンで切り替える
| 固定リンク