2012-04-28

「Mac mini」の内蔵HDDを消失した!!!

長い事懸案で在った「ピラティスのロール・アップ」運動の検討をしているうちに,その運動のアニメーションを作りたく成って来た。為に「ImageMagic」をインストールしようとしたが「X11.app」が不調なのに気づいて,対処しているうちに,あろう事に内蔵HDDを消去してしまった。

内蔵HDD(210GB)の全体を,外付けHDD1に対して完全に復元しようとして,2TBを4つのパーティションに切ってある(〜500GBごと)のを,効率よく使う為に,さらに細切れに細分割できるかと思い,一つのパーティションを250GB*2に再分割して,そこに内蔵HDDのバックアップを作ろうとしたが,エラーとなった。そこでパーティションを戻そうとしている時に,肝心の内蔵HDDを消してしまったのだ。

その後,内蔵HDDを消去して,新規に「Lion 10.7.3」をRecoveryHDのダウンオードから含めて20min強と,意外とスムーズにダウンロードできた。現在,「Time Machine」でバックアップしたデータを手動でコピーしながら復帰している。

ところが、現状のLion7.3では「~/Library」はFinder上では不可視(遮蔽)されている。其の上に,「Time Machine」のバックアップ・データ(backups.backupdb)の「yyyy-mm-dd-HHMMSS/」の下の「/Users/[アカウント名]/Library」も同様に遮蔽されている。其の上に,「ライブラリ」の表示の仕組みが二重に働くようで,とても「処理し難い」=「間違いを起こし易い」

ここら辺を,アップルのサポート・センタのシニア・アドバイザの方と論議している為に,「ディレクトリの日本語表記」と「~/Libraryの遮蔽解除」をしてしまえば,問題が解消するのではなかろうかと予想した。 そこで;
  • 2つの処理を具体的に述べますと;
    • ターミナルでのコマンドで「ライブラリ」の遮蔽を解除
      • $ chflags nohidden ~/Library/
    • フォルダ名の日本語ローカライズの停止: 詳しくは別記事の予定。
      • /System/Library/CoreServices/SystemFolderLocalizations で,
        • Japanese.ilprojの下のSystemFolderLocalization.stringsをen.lprolのそれに置き換える;
      •  実際のコマンドとしては;
        • $ cd /System/Library/CoreServices/SystemFolderLocalizations
        • $ sudo cp en.lproj/ SystemFolderLocalizations.strings Japanese.lproj/
上記の処理の後では,予想道理に,内蔵HDDでも,「Time Machine」の個別ファイルでも「~/Library」はストレートに見えるし,コピーできるようになった。
  • 少なくとも「Lion 10.7.4」か「Mountain Lion 10.8」までには,これらの処理をユーザが簡単なコマンドで切り替えるようにして欲しいものだ。
  •  「Time Machine」の個別ファイルなり個別ディレクトリはコピーだけにして、万が一にも書き込みはしないように注意することだとおもう。

この間, 「ピラティスのロール・アップ運動の実証モデル」の概念設計ができたので,東急ハンズで材料を物色したら「田宮模型の4速クランク・ギヤー・ボックスセット, No.110」があったので生まれて初めて組み立ててみた。実際に動かすと,問題点が幾つか見えて来たので,タミヤのサイトでカタログを覗くと,「6速ギヤボックスHE, ITEM72005」がやや高速回転だが構造が確りしているので「凧糸」に張力を派生させるには好都合である事がわかった。

コンピュータのチューニングと模型の製作は,意外と相性がよ意味ようだ。物いじりは頭をリラックスする効能がありそうだ。

両者とも巧くいけば,チューニング記録を報告出来るかも知れないなぁ。

ーーーー このポストの履歴
  1. 開始 2012-04-28 (土) 11:09 
  2. 修正 2012-05-01  (火) 14:55

2012-04-20

図書紹介#015:「CentOS6で作るネットワークサーバ構築ガイド」

Mac関係ではネットワーク関係で判り易い本がないようだ。一方で、現在トライ中のVirtualBoxでUbuntuを入れて、仮想環境のもとで「Pythonのヴァージョン毎の仮想環境」などを弄っていると、気楽に環境を作り、いやならすぐ作り直す、といったのが簡単にできる上、それらはMacの「Time Machine」のバックアップ対象らしい事に気がついた。

そこで、最近人気上昇中のCentOS6をインストールできるかもと思い、この本を購入してみた;
  • 「CentOS6で作るネットワークサーバ構築ガイド」
    • サーバ構築研究会・編著
    • 秀和システム、2012-03
    • ISBN-13: 978-4-7980-3248-1
なお、VirtualBoxにCentOSを導入するには;
が参考になったが、まさに...ネットワークの設定で混乱している。どうやら「§6.6 Host-only networking, p99」から芋ズル式に勉強する必要がありそうだ...。
 
ーーーー このポストの履歴
  1. 開始 2012-04-20 (金) 12:28

2012-04-15

TerminalからVirtualBox経由でUbuntsにSSHでログインする

現在、図書紹介#014:「Pythonプロフェッショナル・プログラミング」を学んでいる。

でも、これまではDocから「VirtualBox」 のアイコンをクリックして保留中のUbuntuのアイコンをクリックしていた。手間もかかるし、見難い小さなターミナル画面が2つも開いて来るので鬱陶しい。検索すると、「VBoxManage」というコマンドを用いれば良いらしいと判ったので、オンライン・マニュアルを拝見すると、「VBoxManage」というコマンド体系が用意されている。これらを使うと、「VirtualBox」 のアイコンという鈍間な手数を経なくて、ダイレクトにSSHでログインできるようになった。

最初に使ったのは;
$ VBoxManage list vms

で、これにより「VirtualBox」で選択するアイコンの登録名が判明し、その詳細情報は;
$ VBoxManage list --long vms
 によって入手できる。この辺の感触が判ると、オンライン・マニュアルで芋ズル式にコマンドをたどる事が出来た。その結果、
  • Ubuntuへの起動とSSHログインの為の、接続スクリプト「U」と、
  • SSH終了後の保留までの、終了スクリプト「Usave」とを
 作る事が出来たので、以下に示します;
<接続スクリプト:U>;
u1@div-mm:~/myBash$ cat U
#!/bin/bash

VBoxManage startvm "ub_mm_1" --type headless

ssh -p 2222 u1@localhost
u1@div-mm:~/myBash$ 


<終了スクリプト:Usave>;
u1@div-mm:~/myBash$ cat Usave 
#!/bin/bash

VBoxManage controlvm "ub_mm_1" savestate

u1@div-mm:~/myBash$ 


これでUbuntuの操作が気楽にできるようになった気がする。

ーーーー このポストの履歴
  1. 開始 2012-04-15 (日) 19:04




2012-04-09

bashとpythonとの連携スクリプトで「du」を観易くする

最近、「python shell」でpythonの練習をしていると、ちょっと複雑なスクリプトをチューニングしようとすると、Aquamacsで.pyとして書き出し、terminalで動作確認する方が楽である事に気がついた。

慣れるにつれて、bashもpythonもターミナルから見ればスクリプトである事を実感して来た。数値処理は、若い頃にFortranやHP-BASICなどを使っていた事も在り、bashでやるよりはpythonの方が使い易い事にも気がついた。

そんな折り、「Time machine」によるバックアップに並行して、ディレクトリごとのバックアップ(rsync)をしたいと思うようになった。ついては以前、iMac間で、データの転送する時に、「du -h -d 1」をして、印刷用紙上で、転送の有無と、サイズの確認をしたものの見辛かったのを思い出した。

今回は、このコマンドをサイズの大きい順にソートして、「-h」に近い形式で見易くする事を考えた。大部分は下記の参考書を見ると、bashでできる;
  •  UNIXシェルスクリプト 逆引き大全 333の極意
    • 中橋 一郎・著
    • 秀和システム、2009-08.
    • ISBN-10: 4-7980-0884-2
が、計算処理はpythonの方が楽そうだ。そこで、bashスクリプトからpythonスクリプトを「バックコートで括る」形式で読みだす事にトライした。

まず、bashスクリプト本体は;

u1@div-mm:~/bin$ cat myDU
#!/bin/bash 

# Finderで、ディレクトリ右クリックで「情報」を見るのは面倒だ。そこで
# 現在のディレクトリ中の全てのディレクトリのサイズを求め、
# ブロックの順にソートし、
# バイト単位(kB=1000B, MB=1000kB, GB=1000MB)で表示する。
#    2012-04-08  (日) 15:44 by mNeji/irt
#    on Lion/10.7.3 at Mac mini(mid 2011)

# 参考: 「UNIXシェルスクリプト 逆引き大全 333極意」
#          中橋 一郎 著
#          秀和システム、2009-08
#          ISBN-10:4-7980-0886-2
# 参考箇所:unix333, (p223, Tips#194), (p112, Tips#084)

# 説明の表示
echo "+ Script($0) at `myDate` start +++++"
echo "+ action: 'du -d 1 | sort -gr' for dir:'`pwd`' " 
printf '+ Size \t\t Directory Name ----------------------\n'

# 現在のディレクトリと直下のディレクトリのサイズを求め、ブロックの順にソートする
du -d 1 |sort -gr > temp_du

# unix333, (p223, Tips#194): ファイルを行に分割
IFS=$'\n'               #改行区切り 
file=(`cat temp_du`)    #fileはアレイ構造

rm -f temp_du           # 中間ファイルを削除

# アレイの第一列にあるブロック数を適切なバイト数に変換して、
# 表として再度、表示する。

for line in "${file[@]}";do

    # unix333, (p112, Tips#084): 1行をタブで分割
    IFS=$'\t'       #タブ区切り
    set -- $line    #$1はブロック数(512Byte) , $2は相対ディレクトリ 
 
    #ブロック数からkByte, MByte, GByteへの変換には、
    #「Python script: myBlock2Byte.py」を作成して、用いた。
    ByteSize=`myBlock2Byte.py "$1"`  
    
    # 行表示
    printf '%s\t %s\n' "$ByteSize" "'$2'"

done

echo "+ Script($0) at `myDate` stop +++++"
u1@div-mm:~/bin$ 


ここで、「pythonスクリプトの呼び出し」は第42行目の;

  • ByteSize=`myBlock2Byte.py "$1"`

です。

 そのpythonスクリプト「myBlock2Byte.py」は;

u1@div-mm:~/bin$ cat myBlock2Byte.py 
#! /usr/bin/python
# coding: utf-8

# usage: $ myBloch2Byte.py block_number
#         The parameter, block_number indicates in the unit of 1block = 512Byte

# input: Size in the unit of Block
# output: Size in the unit of kB, MG, GB
# 2012-04-06 by mNeji
#   Python/2.7.1 on Lion/10.7.2 at Mac mini(mid 2011)


# 引数の受け入れ
import sys
myArg= sys.argv

# ブロック数を整数型に変換し、
blockSize=int(myArg[1])

# module math
import math

# バイト数に変換
byteSize=math.floor(blockSize*512)  # 1block = 512Byte
kSize=byteSize/1000.    # 1kB = 1000Byte for Lion/10.7.3
MSize=kSize/1000.       # 1MB = 1000kB for Lion/10.7.3
GSize=MSize/1000.       # 1GB = 1000MB for Lion/10.7.3



# 使用サイズの補助単位選択

if GSize >= 1.:
    print '%7.2f%s' % (GSize,"GB")
elif MSize >= 1.:
    print '%6.1f%s' % (MSize,"MB")
else:
    print '%5.0f%s\t' % (kSize,"kB")


    
u1@div-mm:~/bin$ 



です。

このスクリプトで自分のホーム・ディレクトリのディレクトリ容量を出した結果は;

u1@div-mm:~$ myDU
+ Script(/Users/u1/bin/myDU) at 2012-04-09(月)14:02:28 start +++++
+ action: 'du -d 1 | sort -gr' for dir:'/Users/u1' 
+ Size    Directory Name ----------------------
 129.61GB  '.'
  64.22GB  './Library'
  57.51GB  './Music'
   5.76GB  './VirtualBox VMs'
 714.6MB  './Sites'
 564.1MB  './Documents'
 465.9MB  './Pictures'
 143.2MB  './myLocal'
 111.6MB  './Kabe-Gamis'
  88.3MB  './tmp'
  11.5MB  './bin'
   8.3MB  './backup'
   4.6MB  './.npm'
   2.9MB  './.gem'
   1.4MB  './myBash'
   1.3MB  './RRwork'
   1.1MB  './solarized'
  569kB   './Public'
  172kB   './.zsh.d'
  164kB   './DLしたプログラム資料'
   66kB   './function'
   53kB   './zsh_back0'
   20kB   './.ssh'
   16kB   './mytest'
   16kB   './Downloads'
   16kB   './Desktop'
    4kB   './.pip'
    4kB   './.idlerc'
    4kB   './.cups'
    0kB   './NTT_PR-S300SE'
    0kB   './Movies'
    0kB   './.emacs.d'
    0kB   './.bundler'
    0kB   './.Trash'
+ Script(/Users/u1/bin/myDU) at 2012-04-09(月)14:02:30 stop +++++
u1@div-mm:~$ 

です。なお、上記の容量値を、Finderで該当するディレクトリを右クリックして情報を見てみますと;




サイズの項にでている「129.61 GB」 と一致します。それぞれ小さい場合も完全に一致しています。今後、気楽にバックアップを検討する事ができそうです。


慣れてしまえば、完全にpythonスクリプトで処理する方が楽そうである。いよいよ、Calcのマクロをpythonで作る事も可能な気がして来た。



ーーーー このポストの履歴
  1. 開始 2012-04-09 (月) 13:53


2012-04-04

「.」ファイルだけのls取得エイリアス

sshの関連で「.」が先頭に付くファイルを扱う事が多くなっている。そこで『「.」が先頭に付くファイルだけのlsリスト』を出す、bashのエイリアスを作って見た。参考の為に、.bashrcでの「ls」関連の設定を出しておく。lldld
alias ll='ls -l'
alias lla='ls -lA'
alias la='ls -A'
alias ls='ls -vFG'
alias l='ls'
alias ld='la |grep "^\."'
alias lld='lla |grep " \."'

慌てた時に助かる。

「ls」コマンドにとって「.」ファイルは特殊だが、正規表現でも「.」には特殊な意味をもっていたのか。「?」と混同していたようだ。

ーーーー このポストの履歴
  1. 開始 2012-04-04 (水) 16:33
  2. 修正 2012-05-10  (木) 13:15、ldot  → ld

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...