ラベル A4-4. OSX - Beginners の投稿を表示しています。 すべての投稿を表示
ラベル A4-4. OSX - Beginners の投稿を表示しています。 すべての投稿を表示

2014年8月7日木曜日

OSX: ICMPについて

■ICMPの設定について

 ICMPは、TCP/IP通信において、補助的な情報(エラーなどの情報)をやり取りするために使われるプロトコルである。pingコマンドでは、このICMPを使って診断用データを送受信しているので、pingコマンドを利用できるようにするためには、ICMPのパケットが送受信できるようにしておく必要がある(ネットワークのトラブルシューティング作業などのためには、ぜひともこのpingが使えるようにしておくべきである)。

 ICMPで送受信されるパケットには、“type”と“code”という補助的なフィールドがある。pingで使われるICMP Echoとその応答であるICMP Echo Replyパケットでは、typeフィールドの値はそれぞれ「8」と「0」なので、pingの応答を受け取ることができるようにするには「type=0」のICMPパケットを通すようにする必要がある。また他のマシンからのpingに対して応答できるようにするには(必ずしも外部からのpingに応答する必要はないが、自分のマシン環境をインターネット側からチェックしたりする場合に、これが可能だと便利である。テストが終われば閉じてしまってもよいだろう)、「type=8」のICMPパケットを通すようにする必要がある(codeの値は0)。

2014年7月23日水曜日

OSX: Bashscriptを作成し、実行する方法

バッシュスクリプトとは:

ターミナルで利用できるコマンドを実行可能形式のTextファイルに羅列し記述することで、一括で実行できるようにする為のスクリプトである。
この場合、外部パラメタ、グローバルまたはローカル変数、条件式を用いてそれに応じたTerminalコマンドを実行するように記述する為のものです。更なる詳しい事についてはGoogle検索してください。

作成方法:

コマンドによるバックアップ方法の内容に基づきbashscriptを作成する方法を説明する。

作成場所:~/Documents (書類)フォルダ
  1. 標準搭載の「TextEdit」などのエディターを起動する。
    • TextEditをテキストエディターとして使うにはTextEditアプリのTextEditメニューのPreferences(設定、「⌘+,」を押下)を表示させ、Plain Textを設定する必要があります。
  2. 以下の内容をその新規作成するファイルに記載、次の行からそれぞれのコマンドをTerminalで起動するときと同様の形式で記載する。
    • #!/bin/bash
  3. 任意のファイル名をつけ保存し、拡張子をshとする。
  4. Terminalを起動し、実行権限を以下のコマンドで作成したファイルに付与する。
    • $ chmod +x ~/Documents/backup.sh
  5. Terminalから実行し動作を確認する。
    • $ ~/Documents/backup.sh
   上記、$表示はコンソール内の表示であって無視。
 途中停止する場合、Control + Cで停止できます。

shファイル内容:
以下の内容はデスクトップにBackupフォルダを作成して個別バックアップ及びリストアするスクリプトです。なお、コマンド実行時にパラメターとしてディレクトリを入力を促すようにする事もできます。

------------------------------------------------------------------
Backup:

------------------------------------------------------------------
#!/bin/bash

echo Put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
mkdir $VAR
fi

mkdir $VAR
mkdir $VAR/System
mkdir $VAR/System/var
mkdir $VAR/System/Library
mkdir $VAR/User
mkdir $VAR/User/Mail
mkdir $VAR/User/Library
mkdir $VAR/User/Library/Application\ Support/

rsync -av -u ~/Desktop $VAR/User/
rsync -av -u ~/Documents $VAR/User/
rsync -av -u ~/Movies $VAR/User/

echo $VAR

rsync -av -u cp -R ~/Music $VAR/User/
rsync -av -u ~/Pictures $VAR/User/
rsync -av -u ~/Downloads $VAR/User/
rsync -av -u ~/Library/Logs $VAR/User/Library/

rsync -av -u ~/Library/Mail/V2 $VAR/User/Mail/
rsync -av -u ~/Library/Application\ Support/AddressBook $VAR/User/Library/Application\ Support/
rsync -av -u ~/Library/Calendars $VAR/User/Library/
rsync -av -u ~/Library/Safari $VAR/User/Library/
rsync -av -u ~/Library/Keychains $VAR/User/Library/
rsync -av -u ~/Library/StickiesDatabase $VAR/User/Library/
rsync -av -u ~/Library/Preferences $VAR/User/Library/
rsync -av -u ~/Library/Logs $VAR/User/Library/

sudo rsync -av -u /Library/KeyChains $VAR/System/Library/
sudo rsync -av -u /var/log $VAR/System/var/
sudo rsync -av -u /Library/Logs $VAR/System/Library/




-------------------------------------------------------
Restore: 


-------------------------------------------------------
#!/bin/bash

echo put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
fi

echo Documents
echo cp -R $VAR/Documents ~/

echo Desktop
echo cp -R $VAR/Desktop ~/

echo Movies
sudo cp -R $VAR/Movies ~/

echo Music
sudo cp -R $VAR/Music ~/

echo Mail
sudo cp -R $VAR/User/Mail/V2 ~/Library/Mail/

echo Pictures
sudo cp -R $VAR/User/Pictures ~/

echo Downloads
sudo cp -R $VAR/User/Downloads ~/

echo user LibraryApplication Support
sudo cp -R $VAR/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/

echo user Library Calendars
sudo cp -R $VAR/User/Library/Calendars ~/Library/

echo user Safari
sudo cp -R $VAR/User/Library/Safari ~/Library/

echo User Keychains
sudo cp -R $VAR/User/Library/Keychains ~/Library/

echo User Stickies
sudo cp -R $VAR/User/Library/StickiesDatabase ~/Library/

echo User Preferences
sudo cp -R $VAR/User/Library/Preferences ~/Library/

echo User Logs
sudo cp -R  $VAR/User/Library/Logs ~/Library/

echo System Library Keychain
sudo cp -R $VAR/System/Library/KeyChains /Library/

echo System var
sudo cp -R $VAR/System/var/log /var/

echo System Library

sudo cp -R $VAR/System/Library/Logs /Library/

参考リンク:


2014年5月31日土曜日

OSX: 録音した音声ファイルの作成日付を維持するには

ファイルの日付が変わる場合、以下のケースが想定されます

想定されるケース:
  • 録音機からPCへダウンロードするとFinder上ではダウンロード日付が作成日になる(これはSonority Plusなどの管理ソフトを使うと、管理ソフト上では作成日は正しく表示されていますが、Finder上ではダウンロード日時となっています。
  • 何者かによってマイクロ波でマイクロコード(コマンド)が送られてきたりして、ファイルの日付が変えられる
対策:

まず録音機(/Volumes)からダウンロードせずに、つないだ状態でfindとstatコマンドの組み合わせで日付を取得しファイル名に日付をつけると問題を解決できます。

コマンドは以下の通りです 

find /Volumes -exec stat -f "%N %SB %Sa %Sm %Sc %z" {} + > ~/Desktop/list.txt


捕捉:

上記のlist.txtの部分に対して、ネーミングコンベンション(名前付け規則)でファイル名に日付などをつけておくと便利です。






2014年5月12日月曜日

OSX - ファイルのタイムスタンプをリストに抽出するには

以下はDocumentsフォルダの内容すべてをリスト化するコマンドです。

find ~/Documents -exec stat -f "%N %SB %Sa %Sm %Sc %z" {} + > ~/Desktop/Documents.txt

%N         ファイル名
%SB  作成日
%Sa  最終アクセス日
%Sm  更新日
%Sc
%z   容量


statのオプションの詳細についてはman statコマンドで見る事ができます。

2014年3月10日月曜日

Mac OS X(Mavericks)の環境変数および設定方法について

環境設定には以下の3種類あります。(まとめ中に付き、以下リンクより参照)

参考リンク:
http://osx.miko.org/index.php/Beginning_OS_X_Mavericks/%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%95%B4%E5%82%99%E7%B7%A8#.E7.92.B0.E5.A2.83.E5.A4.89.E6.95.B0.E3.81.AE.E8.A8.AD.E5.AE.9A

a. システム環境設定
b. 全ユーザ用     ~/.bash.rc
c. 個人ユーザ環境設定   /.bashrc

たとえば、ユーザ特有のパス設定などをするときはユーザ環境設定でします。
コマンドは以下の通りです


Android Studio開発環境のPATH:
PATH=/Applications/Android\
Studio.app/sdk/tools:/Applications/Android\ Studio.app/sdk/platform-tools:$PATH

export PATH

adbは<sdk>/platform-tools/.
ddmsは<sdk>/tools
Android Studioのインストールパスがわからない場合、ApplicationフォルダでアプリのアイコンをCommand+クリックでパッケージ詳細(Package Contents)を見る事でファイルが表示されるので、どれか適当にCommand+iキーで情報をみるでパスを確認する事ができます。

参考:
アプリケーションのインストールパスをGUIから確認する方法
http://tappiserv.com/geek/?p=60
https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html
https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/dyld.1.html



2014年1月22日水曜日

Teminal: ターミナルでファイル、ディレクトリーなどをコピーするには

cpコマンド


用途:ファイルやディレクトリーをコピーするときに使用するコマンドです。


例:以下は/Users/username/Downloads/test.txtにあるファイルを~/Library/Application\ Support/GIMP/2.8/scripts/text.txtに上書きコピーする時のコマンドです。

cp -i /Users/username/Downloads/test.txt
~/Library/Application\ Support/GIMP/2.8/scripts/text.txt

もし上記のようにフォルダー名の間にスペースが開いていた場合は、\(バックスラッシュ、¥)を最初の文字列の最後尾の次に書くことでスペースを認識するようにできます。

その他オプションは以下のリンクで参照ください。