Midnightjapan

Windows

シェルスクリプトファイルの転送について

by jun on 2月.08, 2013, under Linux, Windows

SIerとなり、なんとか3ヶ月でリリース担当にまでなりました。

PHPの軽微な改修なんかもやってますが。Javaの勉強は進まず年齢的にPMやらPL扱いの仕事が増えてきています。

さて、表題のシェルスクリプトについて。

Windowsなんかでシェルスクリプトを作成します。

FFFTPやWinSCPなどでファイルをサーバーに送信します。

その時、シェルスクリプトは正常に動作しますか?

いいえ、動作しない場合があります。

ファイルの転送モードや改行コードによってはエラーが起きるからです。

特にこんな場合です。

Linuxサーバー => シェルスクリプトダウンロード
Windowsで編集
Windows => Linux サーバーへアップロード

この時にシェルスクリプトはエラーで動かないことがあります。

転送モードがどうなっていたか見てみましょう。

Linuxサーバー => シェルスクリプトダウンロード (テキストモード)
Windowsで編集
Windows => Linux サーバーへアップロード(バイナリーモード)

これでエラーが起きます。

さて、なにがいけないのでしょうか?

まずは最初に転送モード自動でダウンロードして、なぜテキストモードなんでしょうか?

答えはテキストだからです。

この時にテキストファイルは改行コードをWindowsに合わせてに置き換えられるんです。

Windowsではたしかにに置き換えられていますので、元からなのかと思ってしまいます。

しかしLinuxの標準改行コードはです。

これをサーバーにはバイナリーで送信してしまいますと・・・。

バイナリーモードでは、0/1信号で送るためファイル形式が変わらないんですね。

これをテキストモードで転送すると、逆置換が自動で行われるんです。

改行コードをWindowsに合わせてにしてくれます。

Linuxのシェルスクリプトを含むテキストファイルではしか存在しないためなんか知らないのでエラーが起こるというわけです。

というわけで、複雑そうですが簡単に言うと・・・・

シェルスクリプトは改行コードをにてバイナリーモードで遅ればいいってことですw

以上、備忘録として私と同じようなミスをしませんようにw


UNIX LF JIS, EUC, (ShiftJIS)
Windows CR+LF ShiftJIS
Macintosh CR ShiftJIS


テキストファイルを改行コードや文字コードを変換して送信します。
当然画像ファイルをこのモードで送ると、バイナリーコードを文字に変換してしまい異常な形式になります。
注意としてはSVNなどでは改行コードの置き換えで変更があったと思われるので注意。


テキストファイルでも画像ファイルでも0/1信号で送信します。
このためファイルに変化は発生しません。

コメントなし :, , , , , more...

Disk Formatter 物理フォーマット(ローレベルフォーマット)

by jun on 6月.26, 2012, under Windows, Windows7

BUFFALO の Disk Formatter Ver.2.06 で物理フォーマット(ローレベルフォーマット)というものをやってみた。

なぜなら地震被害にあい1TBのHDDが壊れたからだ。

2012年6月01日地震埼玉県越谷市震度4

2012年6月01日地震埼玉県越谷市震度4

2012年6月1日に発生した久々の強い揺れにおののき、慌てて外にかけだしたほどだった。

ふと戻って見ると、MacBookAirに接続してバックアップ中だったUSB接続の外付けHDDがなんとパタンと横に倒れてるじゃあありませんか・・・

しかも・・・HDDはカッコンカッコンと音がなっていて、OS上ではエラーが発生したためコピーを中止しますとアラートが表示されている。

すでにマウントも解除されている。

まずい・・・。

しかし正常に認識するので、とりあえずコピー再開すると、カッコンカッコン言って切断されてしまう。

まずい・・・。

まぁバックアップだからなんとかなるかなぁ・・・いや、つい先日バックアップのバックアップはHDDの寿命に付全部消してしまったぞ。

ぐはw

WindowsにUSB接続すると、認識はされる。

いくつかの破損ファイルがあったが無事にバックアップできた。

このドライブはエラーがあるため修復が必要ですとWindowsがしつこくエラーをだすので、「ファイルシステムエラーを自動的に修復する」と「不良セクタをスキャンし回復する」オプションを選択して修復を実行した。

たぶんchkdskコマンドのGUI版だろう。

午後3時ころ実行開始>翌日午前6時いまだに終了しない。

進捗もわからないので、キャンセルボタンをポチ。

というわけで、HDDを初期化して復旧しようということなわけです。

ドライブ:Hitachi HDT721010SLA360(容量:1TB 回転数:7200rpm キャッシュ:16MB インターフェイス:Serial ATA300)

外付ケース「OWL-ESQ35/U3シリーズガチャポンパッ! SMART3.0」に接続して利用していた。

USB接続だとフォーマットも遅いときき、ケースは変更

外付ケース「OWL-ESQ35/EUシリーズガチャポンパッ! SMART」に接続して作業をはじめた。

 

基本的にWindowsではクイックフォーマットと通常フォーマットしかない。

なにが違うかまとめておこう。

・Windowsクイックフォーマット

実領域には読みも書きもせず(MFT作成して、先頭と末尾にシークできたら終了) 所要時間数秒で完了するが、不良セクタのチェックもなにもせず、実際のデータも残ったままとなる。

・Windows通常フォーマット

クイックフォーマット+αといった感じ(MFT作成+全領域を読み込み+不良セクタのチェックリードスキャン) 1TBで接続環境にもよるが数時間かかる。

Windows標準のツールではここまでしかできない。

そこでBuffalo Disk Formatterの出番です。このフォーマッターならWindows上からできる。心配なのはちゃんと仕事してるのかさっぱりわからないことくらい。

・物理フォーマット

物理フォーマットは全領域リード・ライト・ゼロフィル、エラーの検出と代替セクタのマッピングを行う。ただし厳密にはソフトウェアにより仕様が異なる。HDDには負担がかかるが、軽度のエラーが発生している場合は対応策として役立つ。

Buffalo Disk Formatterにはこの物理フォーマットの機能があるので、さっそく実行してみるが、オプションもないのでなにを実行しているかは皆目見当がつきません。

とりあえず実行して見るとこんなアラートが表示される。

DiskFormatterアラート

DiskFormatterアラート

単純計算しても、おびただしい日数がかかることになる。

この手のアラートは接続環境が複数あり特定しにくいので、かなり多めに見積もってあるのがセオリーだが、いくらなんでも目安にもならない。

これはいかんけど、CHKDSKで尋常ではない時間がかかることは理解していたので、しかたなく数日実行する覚悟で「はい」を選択してみることに。

Buffalo Disk Formatter

Buffalo Disk Formatter

実行中はこんな画面です。ステータスバーはいったりきたりするだけで、どれくらい進んでいるかも、どれくらいかかるかもまったくわかりません。あくまで結果的に何分かかっているかが表示されているだけです。

開始早々は一生懸命書き込んでいる感じがします。

10分くらいするとHDDはカッコンカッコン言っている。これはこわいw

20分ほどするとまた静かになった。

確実に破損またはまずい状態になっている気がする・・・?

まぁバックアップに保険がない今となっては、確実なHDDは買わないといけないので、購入するとしてもバックアップのバックアップくらいにはなってくれると非常に助かる。

今度はどんな構成にしようか妄想しつつ、待つ事4時間半。

物理フォーマットが終了しました。

これで安心して論理フォーマットするとカコンカコン言われるのも怖いし、Mac/Win兼用でビッグボリュームも扱えるExFATにしたかったため、USB接続のケースに変更します。

USB接続後、PCを再起動してからコントーロールパネル>管理ツール>コンピューターの管理>記憶域>ディスクの管理から物理フォーマットが完了した未使用領域を選択。Windows通常フォーマットを選択。

Windows通常フォーマット

Windows通常フォーマット

これも非常に時間がかかりますが、使えない領域があった場合、HDDとして致命的なので念には念を入れて通常フォーマットします。

待つ事30分。

フォーマット中3%あたりで異音が発生し・・・4%まできたところでカコンカコンと・・・。

そしてフォーマットは中断された。

論理フォーマット失敗

論理フォーマット失敗

だよね・・・。そんなことも想像してたんだ。

たぶんUSBみたいに電力とられると、発生するってことは磁気データのピックアップ部分の破損と断定していいね。

やっぱり倒れた時の衝撃でピックアップ部分が壊れて、特定の部分をシークしに行くと読み出せずエラーに。

こんな危険なHDDを外付けにするなら、Windowsバックアップ専用にしてしまおう。

ということで、eSATA接続にしてNTFSにしたら、その部分を乗り切れるかも?

そんな危険なことしてでも使いたいわけじゃないんだけど、こうなったら、ほぼ意地。

実行して見ると、乗り切ったぞ3%?4%!

ってことは、先頭らへんから5%に値する50GBくらいの捨てデータをいれてみよう。いや、いっそパーティションきってみよう。

無事3時間後フォーマット終了。

忙しいときは見限って新品購入する事をお勧めします。

参考まで。

 

4 コメント more...

VirtualBox v4.1.8アップデート

by jun on 3月.01, 2012, under Windows

VirtualBox を3から4にアップデートしました。

Direcr3Dまで利用するので、下記のような手順で行い正常に動作しました。

ただし、アップデート後にUSB2.0接続がOFFになるのでシステム終了後設定でUSB接続をONにする必要があります。

その際に今回のアップデートで仮想の32bit OSのメモリ4GB上限を突破したようなので、割り当てを増やすとより快適になると思います。

今回の環境ではWindows7-64bit上のVirtualBoxにWindowsXP32bitを稼働させるための環境としていることを前提とします。

VirtualBox v4.1.8?アップデート手順

1)ホストからVirtualBox4.1.8アップデータをダウンロード。

2)ホストからVirtualBox4.1.8アップデータをインストール。

3)ホストからVirtualBox Extension Packが古いバージョンのままだとアラートがでるので、指示通りダウンロードしてアップデート

4)ホストからVirtualBoxマネージャーが起動したらゲストOSを起動。(今回は32bit WindowsXP)

– 以下ゲストOS –

5)セーフモードで起動。

6)セーフモードで起動後、コントーロールパネル>プログラムの追加と削除>Oracle VM VirtualBox Guest Addtionをアンインストール。

7)再起動

8)セーフモードで起動。

9)セーフモードで起動後、VirtualBoxのメニューバーから、デバイス>Guest Additionのインストールを選択してインストールを行う。

10)インストール時にDirect 3D Additionを選択

11)インストール後にシステム終了(仮想システムを停止状態に)。

12)ホストからVirtualBoxマネージャーで仮想の設定を行い、メモリの設定やUSBのONなどを設定する。

13)ゲストOSを起動して正常に動作することを確認。

ご苦労様でした。利用した感じでは特に問題はなさそうなのでアップデート推奨していきたいと思います。CentOSやUbuntuはこれから試してみます。

コメントなし :, more...

しばらくぶりのシステムメンテナンスとシステム評価

by jun on 9月.13, 2011, under Mac, Windows

だいぶいろんなシステムを構築してみたので、システムを全面的にメンテナンスしました。

いやぁ実際すごいたまってましたね。

1日じゃ終わりませんでした。

メンテナンスが終わったので、久々にシステムの評価をしてあげます。

人間が使っていると、どれだけ早くても、だんだん不満になってきます。

そこで数値化してあげると正しい性能評価ができ、とてもいいと思います。


CPU:Core i7-2600 SandyBridge(サンデイブリッジ) 3.4GHz/TB有効時3.8GHz/8MB/TDP 95W

Mother:ASUS P8P67 Deluxe

Video:XFX Radeon HD 6850 GDDR5/1GB

HDD:Intel 160GB SSD

OS:Windows7:64bit

FFベンチ(Highモード):9736 point

電力抑えてあるのにはえ?w


ちなみに現在の環境では

CPU:Core i7-920?Bloomfield(ブルームフィールド)?2.66GHz/8MB/TDP130W

Mother:ASUS P6T

Video:HIS Radeon 4670?GDDR3/512MB

HDD:WDC WD1002FAEX-00Z3A0 普通のSATA1TB

OS:Windows 7 64bit

FFベンチ(Highモード):8443 point


ちなみに業務用零号機(現在自宅で利用-J用)では

CPU:Pentium4 3.6GHz

Mother:不明

Video:Radeon X800

OS:WindowsXP 32bit

FFベンチ(Highモード):4558 point


ちなみに業務用初号機(現在自宅で利用-H用)では

CPU:PentiumD 2.7GHz

Mother:Intel ???

Video:Radeon X1950Pro

OS:WindowsXP 32bit

FFベンチ(Highモード):4520 point


さらに昔のノートパソコンFF正式対応機種(現在引退済み) Sharp Mebius

CPU:AMD Sempron3000+ 1.79GHz

Mother:Sharp製

Video:Radeon Xpress200M

OS:WindowsXP 32bit

FFベンチ(Highモード):1421 point

よくこんなのでやってたよねw


現役ノートパソコンMacbook Air/13″ ?Late 2010 Bootcamp モード

CPU:Intel Core 2 Duo?1.86GHz/6MB

Mother:Apple製

Video:NVIDIA GeForce 320M 256MB DDR3

OS:Windows7-64bit

FFベンチ(Highモード):4652 point

ノートのくせに自宅のデスクトップより早いとは・・・


ね?

数字化してみると、人の思いこみよりも案外大差がないんですよね。

最新が絶対なんてことはなく、すべてが小さな積み重ねでパフォーマンスが変わります。

ということはCore-i7 920もビデオカードとSSDにしたら、かなり早くなるってことか。

う?んw節約節約。

コメントなし :, , more...

VMwareServer2.0.2 Linux のリモートコンソールをVMware Playerで高速化

by jun on 5月.12, 2011, under Linux, Windows

CentOS 5.5(Final) 64bit-Kernel2.6.18

このサーバー上で運用している仮想サーバーアプライアンス

VMware Server 2.0.2 for Linux 64bit版

これを下記のクライアントから利用する。

Windows7 64bit

通常この場合はIEを互換モードにしてVMware Infrastructure WebAccessにログインして64bit独特の問題を解消してゴニョゴニョからリモートコンソールというソフトで利用する。

が・・・あちこちで遅いのでVMware Playerを利用するという紹介があったのでやってみた。

紹介の中では64bitじゃなかったり、バージョンが違ったりしていたので、この構成での明確な方法を記述する。

なお、すでにWindows7でVMware Remote Console Plug-inのショートカットができあがっているものを、VMware Playerで利用する方法として記述する。

1)下記の最新版 VMware Playerをダウンロード&インストール

VMware Player3.1.4?(32 ビットおよび 64 ビット版) for ?Windows

2)すでに作ってあるVMware Remote Console Plug-inのショートカットのプロパティを開く。(すでにゴニョゴニョしてあるので標準とは違うことを知っておいてください)

"C:\Program Files (x86)\Common Files\VMware\VMware Remote Console Plug-in\vmware-vmrc.exe" -h <ホスト名>:8333 -M 16

「<ホスト名>:8333」 の後の「-M 16」がなにをさすかわからないが、私の環境では2台分の仮想ホストが稼働しているが、その管理番号のようなものらしい。

このショートカットをRemoteConsoleではなく下記のようにVMware Playerにしてあげます。

"C:\Program Files (x86)\VMware\VMware Player\vmplayer.exe" -h <ホスト名>:8333 -M 16

どうでしょ?

VPN接続なので一般的な速度じゃありませんが、ログイン画面がでてくるまでの時間です。

VMwareRemote Console = 15秒

VMwarePlayer =2秒

なるほど、早いもんだ。

コメントなし :, , , more...



何かお探しですか?

以下にキーワードを入力してサイト内検索が可能です:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!