Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< August 2015 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Sponsored Links
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2022.03.28 Monday
スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - | pookmark |
            
2015.08.28 Friday
Unity5.1.1AssetDatabase.LoadAllAssetsAtPath ("Asset"); なんかだめ。Directory.GetDirectories(HDパス)で再帰の方がよさげ。
Unity5.1.1AssetDatabase.LoadAllAssetsAtPath ("Asset"); なんかだめ。Directory.GetDirectories(HDパス)で再帰の方がよさげ。

こんなんなった。
 
| whaison | Unity3d | 17:27 | comments(0) | - | pookmark |
            
2015.08.28 Friday
Visual Studio 2015 プロジェクトに外部のDLLファイル含める 00100 

にせねこメモ

2015-07-06

Visual Studio 2013 でプロジェクトのディレクトリ内にライブラリをインストールする

http://nixeneko.hatenablog.com/entry/2015/07/06/001828

より

Visual Stdio 2015 版を書いてみようと思う。

 

Visual Studio で外部ライブラリを使った場合、普通はライブラリをインストールしたシステム上でしか動かせない。

A、B、C、の、どれかでうごかせる。

A.パターンはシステム環境変数 path にDLL のパスを指定する方法再起動が必要。

B.パターンはライブラリは別でインストールさせて、sampleプロジェクトをフォルダごと複製し .sln などの VisualStudio プロジェクト設定ファイルをテキストエディタで開いて検索置換してパス(フォルダ名だけでいい場合が多い)を直し、program自体は 配布されたものを使うといける。

C.パターンはライブラリをプロジェクトと同じフォルダに突っ込むことで、同じバージョンの Visual Studio をインストールした他のPCに持っていってもそのままコンパイルができるようにすることができる。

 

講習会とかで学生無料のVisual Studioインストールしたけどライブラリを各人で環境変数と再起動やインストールさせるのは面倒だからこのプロジェクトそのまま使って、みたいな感じには役立つかもしれない。

 

手順

ここではOpenCVの場合を考える。そうでない場合でも大して変わらないはず。

 

ライブラリは

 

.h ヘッダファイル……コンパイル時に必要

.libファイル……コンパイル時に必要

.dllファイル……実行時に必要

からなっている。そのため、それらが参照できる状態になっている必要がある。

 

そこで、これらのファイルを含んだライブラリをプロジェクトの入っているディレクトリに突っ込んで

ディレクトリの相対パスで指定するようにすれば、システムや環境変数をよごさずにインストールせずとも

OpenCVを使ったプログラムがコンパイル・実行できるようになる。

 

プロジェクト作成

まず、新しいプロジェクトを作成する。

「ファイル」→「新規作成」→「プロジェクト」から新しいプロジェクトのウィンドウを開く。

ここでは「Visual C++」の「Win32 コンソールアプリケーション」を選択、プロジェクトの名前とかは適当に入力しOKをクリック。

今回は

ConsoleAppLibraryinsideDLL00100

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

にした。

 

Win32 アプリケーションウィザードが開くので適当に設定する。というか「完了」押す。

作成したプロジェクトのフォルダにライブラリを入れる

以下フォルダの名前や構造については設定で整合性がついていればいいので適当に。

 

ここでは

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

が作成したプロジェクトの入っているディレクトリである。 入ってるものは

.vs/

ConsoleAppLibraryinsideDLL00100/ 

ConsoleAppLibraryinsideDLL00100.sln

ConsoleAppLibraryinsideDLL00100.VC.db

ConsoleAppLibraryinsideDLL00100.VC.VC.opendb

ここに “Library” フォルダを作成する。

Library フォルダ内に opencv フォルダを作成する。

 

http://opencv.jp/  jp は 2.2 おしで

https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/ OpenCV-2.2.0-win32-vs2010.exe

Open Source Computer Vision Library 本家は

http://opencv.org/   公式は 最新は opencv-3.2.0-vc14.exe みたい。

今は

 

 

作成した opencv フォルダ内に、展開したOpenCVライブラリの build フォルダの中身を突っ込む。

 

Visual Studioの構成プロパティでコンパイル時に必要なものを設定する

ここではライブラリにパスを通すことで使えるようにする。

ここで、パスを設定する際に、

 

$(SolutionDir)Library¥opencv¥include

$(SolutionDir)Library¥opencv¥x86¥vc12¥lib

などのようにマクロ $(〜) を使うことで相対的にディレクトリを指定できる。

$(SolutionDir) はソリューションファイルがあるディレクトリを示す

(ここでは"C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥ConsoleAppLibraryinsideDLL00100¥")

ディレクトリの表現は¥で終わる形になっているので余計な¥を入れないように。

マクロの一覧はパス設定を行うウィンドウの「マクロ」ボタンをクリックすると一覧が確認できる。

 

他には $(ProjectDir) なども使えるかもしれない(プロジェクトファイルのあるディレクトリを示す)。

 

ソリューションエクスプローラから

プロジェクト名を右クリックしプロパティを開く(あるいは、メニューからプロジェクト>〜のプロパティ)。

構成プロパティ下のVC++ディレクトリタブを開く。

 

インクルードディレクトリにヘッダファイルのディレクトリを追加する。

追加のインクルードディレクトリ」の項目をクリックすると右端に出てくる逆三角のボタンをクリック、

「<編集...>」をクリック。

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥ConsoleAppLibraryinsideDLL00100¥Library¥opencv¥include

になるように

$(SolutionDir)Library¥opencv¥include

を追加する。

次に、ライブラリディレクトリに.libファイルのディレクトリを同様に追加する。

ここで、ライブラリディレクトリについて、

32ビットアプリケーション用であれば x86,

64ビットアプリケーション用であれば x64

のフォルダを選ぶ。

さらにその中で、

vc10 が Visual Studio 2010 用,

vc11 が Visual Studio 2012 用,

vc12 が Visual Studio 2013 用

vc14 が Visual Studio 2015 用

$(SolutionDir)Library¥opencv¥x64¥vc14¥lib

なので自分の環境にあった物を選ぶ。

そのフォルダの下にあるのが

ここでは、Visual Studio 2015で64ビットアプリケーションを作成しているので、

ディレクトリは x86¥vc12¥lib であり、次を追加することになる。

$(SolutionDir)Library¥opencv¥x86¥vc12¥lib

$(SolutionDir)Library¥opencv¥x64¥vc14¥lib

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥ConsoleAppLibraryinsideDLL00100¥Library¥opencv¥x64¥vc14¥lib

 

 

左ペインで リンカー>入力 タブを開く。

「追加の依存ファイル」に、使いたい .lib ファイルを追加する。ここでは、

 

 

opencv_video2410d.lib;

opencv_ml2410d.lib;

opencv_legacy2410d.lib;

opencv_core2410d.lib;

opencv_highgui2410d.lib;

opencv_imgproc2410d.lib;

opencv_features2d2410d.lib

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

ConsoleAppLibraryinsideDLL00100¥Library¥opencv¥x64¥vc14¥lib

に入ってたのは

opencv_world320.lib

opencv_world320d.lib

を追加した。

 

実行時必要となるDLLファイルを適切な場所に

DLLファイルは実行ファイルと同じディレクトリ、

すなわちソリューションディレクトリの下の Debug に突っ込んだらなんとかなった。

ここでは、展開した OpenCV の実行ファイルのディレクトリ build¥x86¥vc12¥bin (.libファイルのディレクトリと同様に環境によって適当なものを選ぶ) の中のファイルを全て

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

ConsoleAppLibraryinsideDLL00100¥Library¥opencv¥x64¥vc14¥bin

 

opencv_ffmpeg320_64.dll

opencv_world320.dll

opencv_world320d.dll

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

ConsoleAppLibraryinsideDLL00100¥Library¥opencv¥bin

 

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

ConsoleAppLibraryinsideDLL00100¥Debug

C:¥Maya¥scripts¥FBX_SDK¥FBX_SDK_VS_Cpp00700¥

ConsoleAppLibraryinsideDLL00100¥x64¥Debug

 

opencv_ffmpeg320_64.dll

opencv_world320.dll

opencv_world320d.dll

の中にコピーした。

 

これはもっとうまい指定方法があるかもしれない。

 

サンプルの実行

以上で使えるようになっているはずなので、サンプルコードを実行してみる。

解凍した フォルダの

C:¥Users¥whaison¥Downloads¥opencv¥sources¥samples¥cpp

 

 

 

4 描画処理 — OpenCV2 プログラミングブック リファレンス編

https://book.mynavi.jp/support/pc/opencv2/c3/opencv_drawing.html

 

//4.1 線分を描く///////////////////////////////////OK

//4.2 矩形を描く///////////////////////////////////////////

//4.3 円を描く/////////////////////////////////////////////////

//4.5 折れ線を描く//////////////////////////////////////////////

//4.6 ポリゴンを描く//////////////////////////////////////////

//4.7 テキストを描く/////////////////////////////////////////////////////

動いた。

ソース

-----------------------------------------------------------------------

 

-----------------------------------------------------------------------

配布できるDLL付きデータ (142MB)

http://www.mediafire.com/file/cilxwrq1e8eeo5e/VisualStudio2015ConsoleAppLibraryinsideDLL00100_opencv32.zip

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

参考URL

https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=visual+studio2015+%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AB%E5%A4%96%E9%83%A8%E3%81%AEDLL%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%AB%E3%82%81%E3%82%8B

 

にせねこメモ

2015-07-06

Visual Studio 2013 でプロジェクトのディレクトリ内にライブラリをインストールする

http://nixeneko.hatenablog.com/entry/2015/07/06/001828

より

 

 

| whaison | DLL | 11:33 | comments(0) | - | pookmark |
            
2015.08.27 Thursday
RemoveAll C# Unity LIST とか List myList ; myList.Clear();でいい。

RemoveAll  C# Unity LIST とか List<string> myList ;  myList.Clear();でいい。

http://answers.unity3d.com/questions/141847/removing-objects-from-a-list-in-c.html  

こんなんでよかった。


  1. public List<string> messages = new List<string>();
  2. messages.Add("test1");
  3. messages.Add("test2");
  4. messages.Add("test3");

to clear the list



  1. messages.Clear();
| whaison | Unity3d | 10:50 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
Jenkins で ssh パスワード聞かれながら ログインしてrsync するシェル 完成
MacOS10.10.2(Yosemite)どうしでJenkins で ssh パスワード聞かれながら ログインしてrsync するシェル 完成

でけた!


 



出力
 

コンソール出力

ユーザーanonymousが実行

ビルドします。 ワークスペース: /Users/whaison/AssetBundles

[AssetBundles] $ /bin/sh /Users/Shared/Jenkins/tmp/hudson283363095865289560.sh

spawn ssh whaison@192.168.179.5

Password:

Last login: Sun Aug 23 22:37:00 2015 from 192.168.179.7

whaisonMacBookAir-2:~ whaison$ rsync -avz --no-p --no-g --chmod=ugo=rwX --del

<on$ rsync -avz --no-p --no-g --chmod=ugo=rwX --dele                         te 'whaison@192.168.179.7

<-g --chmod=ugo=rwX --delete 'whaison@192.168.179.7:                         /Users/whaison/Assetbundl

<e 'whaison@192.168.179.7:/Users/whaison/Assetbundle                         s' '/Users/whaison/public

<Users/whaison/Assetbundles' '/Users/whaison/public/                         '

receiving file list ... done

Assetbundles/

Assetbundles/.DS_Store

Assetbundles/headshot.png

Assetbundles/ssh_pass.sh

Assetbundles/ssh_rsync_whaison.sh

Assetbundles/test.sh

sent 190 bytes  received 3956 bytes  8292.00 bytes/sec

total size is 337070  speedup is 81.30

whaisonMacBookAir-2:~ whaison$ flasher

-bash: flasher: command not found

whaisonMacBookAir-2:~ whaison$ Finished: SUCCESS

大成功!!!!

ちなみに。。。。。。。。。。。。。。。

 

expectとは?

http://www.uetyi.mydns.jp/wordpress/command/entry-158.html

ポイントは、sshのログイン時に秘密鍵を使ってログインするのですが、その秘密鍵のパスフレーズを入力するところと、ログイン後、コマンド「ls -l」を実行するところです。まずは、パッケージ「expect」をインストールし、次に実行用のシェルを作成します。

#!/usr/bin/expect  

set timeout 5 spawn

ssh www.hoge.co.jp 

expect "Enter passphrase for key" 

send "hogehoge38¥n" 

expect "Last login" 

send "ls -l¥n" interact

使用するコマンドの説明です。

set timeout

設定した秒数の間、標準入力から応答がないとexpectは、終了します。上記例だと、5秒でタイムアウトする設定になります。「-1」を設定すると、タイムアウトしない設定になります。

spawn

自動で実行したいコマンドを指定します。上記の場合、「ssh www.hoge.co.jp」を実行します。

expect

指定された文字列(「”」に囲まれた文字)と標準入力のデータとを正規表現で比較し、一致するまで以降の命令を実行しません。例だと、「Enter passphrase for key」が、画面に表示されるのを待つことになります。

send

指定された文字列(「”」に囲まれた文字)を先に実行したコマンドのジョブに送信します。つまり、「hogehoge38¥n」とパスフレーズを入力したことになります。文字列最後の「¥n」は、改行(Enterを押下)を意味します。

interact

実行ジョブの標準入出力をキーボードと画面にします。これで、自動実行を終了し、端末からsshでログインしたのと同じ状態になります。

実行結果は、次のようになります。sshでログインした後、「ls -l」を実行し、制御を端末に戻しています。

userA@debian:~$ ./ssh_conect.sh spawn ssh www.hoge.co.jp Enter passphrase for key '/home/userA/.ssh/id_rsa': Last login: Mon May 26 18:51:27 2008 from localhost userB@kurobox:~$ ls -l totle 1600 drwxr-xr-x 2 userB userB 4096 2008-03-24 17:55 TEMP -rw-r--r-- 1 userB userB 681 2008-03-21 17:01 apache.der -rw-r--r-- 1 userB userB 679 2008-03-21 16:48 Test.txt drwxr-xr-x 2 userB userB 4096 2004-05-02 13:25 lost+found userB@kuroboxfo:~$

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 23:44 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
sshログインできたらもうrsyncでパスワード入力もとめられない

先にmampが

http://localhost:8888/

使っていたので。

Jenkins おじさんは

パッケージでインストールした。

http://localhost:8080/

ここはjenkins SSH -pluginがやってくれるので

noboru-no-MacBook-Pro:~ whaison$ ssh whaison@192.168.179.5

Password:

sshログインできたらもうrsyncでパスワード入力もとめられない。whaison@192.168.179.7は自分のPC側

rsync -avz --no-p --no-g --chmod=ugo=rwX --delete 'whaison@192.168.179.7:/Users/whaison/Assetbundles' '/Users/whaison/public/'

receiving file list ... done

deleting Assetbundles/jenkins-1.624.pkg

deleting Assetbundles/MAMP_MAMP_PRO_3.4.pkg

deleting Assetbundles/Android/whaison.tumblr.com_02MacbookAir.jpg

deleting Assetbundles/Android/dir1/dir2/.DS_Store

Assetbundles/

Assetbundles/.DS_Store

Assetbundles/Android/

Assetbundles/Android/.DS_Store

Assetbundles/Android/whaison.tumblr.com_024.jpg

Assetbundles/Android/dir1/

Assetbundles/Android/dir1/.DS_Store

Assetbundles/Android/dir1/dir2/

Assetbundles/ssh/

Assetbundles/ssh/.DS_Store

Assetbundles/ssh/id_rsa.pub

sent 350 bytes  received 96773 bytes  64748.67 bytes/sec

total size is 333274  speedup is 3.43

whaisonMacBookAir-2:~ whaison$ 

 

おっけー完璧

rsync -avz --no-p --no-g --chmod=ugo=rwX --delete 'whaison@192.168.179.7:/Users/whaison/Assetbundles' '/Users/whaison/public/'

これをSSH-Pluginにやらせまつ

SSH-Pluginつかえまてん。

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 20:52 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
Jenkins でリモートサーバーのコマンドを実行できる SSH pluginを使ってみた

http://orca8.blogspot.jp/2014/09/jenkins-ssh-plugin.html  どうやらリンク切れ?
 

Jenkins でリモートサーバーのコマンドを実行できる SSH pluginを使ってみた

毎朝Linuxサーバーの電源を入れては起動後に必要なスクリプトを実行していたのですが
たまに忘れたりして他の人に迷惑をかけていました。

このような作業は自動でやりたいと思っていたのでJenkinsで出来ないか調査したところ
リモートサーバーのコマンドを実行できるSSH pluginというのがありました。

インストールから設定方法
  1. プラグインの管理の「利用可能」からsshで検索してSSH pluginをインストールします。
  2.  システムの設定で「SSHリモートホスト」でSSHサイトの「追加」ボタンを押すと下のキャプチャの設定項目が表示されます。
  3. ユーザー名とパスワードで接続できる場合はホスト名、ユーザ名、パスワード/パスフレーズでパスワードを入力します。
 
公開鍵で接続を行っている場合
キーファイルに秘密鍵のファイルパスを入力して、パスワード/パスフレーズで秘密鍵の
パスワードを入力することで接続できるようになります。
秘密鍵をPuTTY形式で作成している場合はOpenSSH形式に変換する必要があります。

OpenSSH形式ではなかったために見事に接続に失敗してしまいました。

使い方
  1. ビルドの設定画面で「ビルド手順の追加」から「リモートホストでシェルを実行」を選択。
  2. 下のキャプチャの項目が表示されます。SSHサイトにはシステムの設定で追加したSSHサイトが選択できるので、実行するサイトを選択します。
  3. リモートホストで実行したいコマンドを入力します。
  4. ビルド実行で実際にリモートホストに対してコマンドを実行してくれます。
 
| whaison | Jenkins | 17:38 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
rsyncパスワード無しで利用

rsyncパスワード無しで利用

 

http://joker.hatenablog.com/entry/2013/06/05/192336

 

  1. (Linuxサーバで操作)ひとまずパスワード認証の接続を許可する
  2. これをしておかないと、後で作成する公開鍵をサーバ側へ送れない。

 

  1. サーバ接続のために、ひとまずパスワード認証を許可しておく(

ここ

  1. を参考に)。 mac だとここ /private/etc/sshd_config

 

$ vi /etc/ssh/sshd_config

...(省略)

PasswordAuthentication yes

...(省略)

ChallengeResponseAuthentication yes

...(省略)

#XAuthLocation /opt/X11/bin/xauth

 

上記のように書きなおしたら、ssh を再起動する。

mac:

 

※stopとしているが、自動的に再起動される。

1

$ sudo launchctl stop com.openssh.sshd

linax:

$ /etc/init.d/sshd reload

sshd を停止中:                                             [  OK  ]

sshd を起動中:                                             [  OK  ]

 

 

  1. (Mac OS Xで操作)SSH 接続できるか、確認する

 

  1. パスワード無しでログインできるか、確認する。

 

> ssh (サーバのユーザ名)@(サーバのアドレス)

 s

ポート指定するなら、

 

> ssh -p 10022 (サーバのユーザ名)@(サーバのアドレス)

10022がポート番号だ。

 

 

 

rsyncやscpをパスワード無しで利用

 

http://blog.suz-lab.com/2009/08/rsyncscp.html

 

 

まず、下記のようにパスワード無しで利用したいユーザーで鍵を作ります。

ssh-keygen -t rsa

noboru-no-MacBook-Pro:~ whaison$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/whaison/.ssh/id_rsa): 

/Users/whaison/.ssh/id_rsa already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /Users/whaison/.ssh/id_rsa.

Your public key has been saved in /Users/whaison/.ssh/id_rsa.pub.

The key fingerprint is:

98:8a:96:3b:d0:bf:a3:b4:04:17:9d:04:eb:23:b3:79 whaison@noboru-no-MacBook-Pro.local

The key's randomart image is:

+--[ RSA 2048]----+

|  ...            |

なんとか

+-----------------+

 

noboru-no-MacBook-Pro:~ whaison$ 

 

そして、作成されたid_rsa.pubをリモートサーバに転送します。

(/tmp/id_rsa.pubに転送されたとして)

最後にリモートサーバのパスワード無しで利用されたいユーザーのauthorized_keysに

下記のようにid_rsa.pubを追加します。

# cat /tmp/id_rsa.pub >> authorized_keys

cat /ssh/id_rsa.pub >> .ssh/authorized_keys

(authorized_keysは~/.sshにあります)

 

 

Last login: Sun Aug 23 15:24:41 from 192.168.179.5

whaisonMacBookAir-2:~ whaison$ ssh whaison@192.168.179.7

The authenticity of host '192.168.179.7 (192.168.179.7)' can't be established.

RSA key fingerprint is 8d:f9:86:c4:17:f8:77:b5:d9:97:0f:eb:d6:c2:dd:e0.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.179.7' (RSA) to the list of known hosts.

Last login: Sun Aug 23 13:28:20 2015 from 192.168.179.5

 

noboru-no-MacBook-Pro:~ whaison$ 

 

 

やりなおす。

Last login: Sun Aug 23 15:39:03 on ttys003

whaisonMacBookAir-2:~ whaison$ ssh whaison@192.168.179.7

Last login: Sun Aug 23 15:39:47 2015 from 192.168.179.5

 

noboru-no-MacBook-Pro:~ whaison$ 

 

 

パスなしログインできたのでrsyncテスト

ターミナル開き直して

Last login: Sun Aug 23 15:41:04 on ttys003

whaisonMacBookAir-2:~ whaison$ rsync -avz --no-p --no-g --chmod=ugo=rwX --delete '/Users/whaison/Assetbundles' 'whaison@192.168.179.7:~/public/'

building file list ... done

Assetbundles/Android/

Assetbundles/Android/.DS_Store

Assetbundles/Android/whaison.tumblr.com_01 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2.jpg

Assetbundles/Android/whaison.tumblr.com_01 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 3.jpg

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/.DS_Store

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/dir2/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/dir2/.DS_Store

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/dir2/dir3/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203? 2/dir2/dir3/whaison.tumblr.com_01.jpg

sent 956690 bytes  received 748 bytes  638292.00 bytes/sec

total size is 2219459  speedup is 2.32

 

whaisonMacBookAir-2:~ whaison$ 

 

できた。完璧なのだが。。。

 

パスワードを要求されてしまう場合がある

その場合は。jenkins おじさんに任せよう

http://orca8.blogspot.jp/2014/09/jenkins-ssh-plugin.html

 

 

| whaison | - | 15:49 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
MacBookAir MacOS10.10.2 Yosemite rsync でrsync: mkdir "/backups" failed: Permission denied (13)の解決方法
MacBookAir MacOS10.10.2 Yosemite rsync でrsync: mkdir "/backups" failed: Permission denied (13)の解決方法

解決方法

やっぱ外人さんすごい ペッツさんのブログ 

http://blog.pezcuckow.com/post/28763933464/rsync-permission-denied-13

より

こんなエラーを目にしましたか?

rsync: mkdir “/home/” failed:
mkdir“/home/"
Permission denied (13)

否定された許可(13)

Skipping any contents from this failed directory ***

これからどんなコンテンツもスキップすると、ディレクトリ*は失敗されました**

こんなコマンドオプションを追加してください。

--no-p disables permissions copying

--どんなpも許容コピーを無能にしません。

--no-g disables group copying and

--どんなgもグループコピーを無能にしないそして

--chmod=ugo=rwX ensures that all non-masked bits get enabled

--chmod=ugo=rwXは、すべての非仮面のビットが可能にされるのを確実にします。



rsync -av --no-p --no-g --chmod=ugo=rwX --delete /backup/ user@mywebsite:~/folder/
 

で実際のところやってみた。
MacBookAir から MacBookProの共有リモートログイン許可してssh whaison@192.168.179.7 で入れる場合。
 

MacOSXのSSH認証は

チャレンジレスポンス認証になるらしく、普通のプレインテキストによる認証ではないっぽい。なので、/etc/sshd_config を編集して通常のログイン方法に変更しておく。

$ sudo vi /etc/sshd_config

変更前:#PasswordAuthentication no
変更後:PasswordAuthentication yes
 

実例
rsync -avz
--no-p --no-g --chmod=ugo=rwX --delete '/Users/whaison/Assetbundles' 'whaison@192.168.179.7:~/public/'


注意点
1、フォルダに大文字とかスペースとか使ってる場合 コピー元も コピー先もシングルコートでかこまないと rsyc がターミナルに渡せないので ダメ
2、コピー元のフォルダの後ろの/があるとフォルダほっていかないからナシ
3、Mac間の場合 "ssh " のオプションとかいれなくておっけ

whaisonMacBookAir-2:~ whaison$ rsync -avz --no-p --no-g --chmod=ugo=rwX --delete '/Users/whaison/Assetbundles' 'whaison@192.168.179.7:~/public/'

Password:

building file list ... done

Assetbundles/.DS_Store

Assetbundles/Android/

Assetbundles/Android/.DS_Store

Assetbundles/Android/whaison.tumblr.com_01 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?.jpg

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/.DS_Store

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/.DS_Store

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/

Assetbundles/Android/dir1 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/whaison.tumblr.com_01.jpg

Assetbundles/Android/dir2 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/

Assetbundles/Android/dir2 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/.DS_Store

Assetbundles/Android/dir2 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/

Assetbundles/Android/dir2 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/

Assetbundles/Android/dir2 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/whaison.tumblr.com_01.jpg

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/.DS_Store

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/.DS_Store

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/

Assetbundles/Android/dir3 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/whaison.tumblr.com_01.jpg

Assetbundles/Android/dir4 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/

Assetbundles/Android/dir4 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/.DS_Store

Assetbundles/Android/dir4 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/

Assetbundles/Android/dir4 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/

Assetbundles/Android/dir4 ?¥#201??¥#202??¥#203¥#222?¥#202¥#232?¥#203?/dir2/dir3/whaison.tumblr.com_01.jpg

sent 478772 bytes  received 492 bytes  56384.00 bytes/sec

total size is 1115670  speedup is 2.33

whaisonMacBookAir-2:~ whaison$ 

完璧っす!

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 05:37 | comments(0) | - | pookmark |
            
2015.08.23 Sunday
rsync メモ3
http://www.omnioo.com/record/ubuntudebian/rsync-option-ssh/

 

rsyncの使い方(オプション SSH)

SSHが繋がっているのだったら、rsync使わないとかなりもったいないです。rsyncは差分同期をとってくれるので、手動でコマンド叩くよりはやっぱりcronがいいです。完全な同期とかCMSのミラーリングとかにはちょっと欠かせないです。何はともあれ使っていないといろいろ忘れてしまうので備忘録。

基本的な使い方

rsync -a /from /to
ディレクトリを丸ごとコピーする際には、rsync -a [同期元] [同期先]でいいわけなんですが、基本的な使い方においてすでに奥が深いです。
rsync -a /from /to
の場合は、/to/fromという風にディレクトリが丸ごと/to/以下にコピーされます。しかし、
rsync -a /from/ /to
の場合は、/fromディレクトリの中身がそのまま/toディレクトリ以下に展開されます。fromディレクトリそのものはコピーされません。つまり、ディレクトリ以下を再帰的にコピーするというわけです。ここが基本的な使い方としてご注意。
rsync -a /from/ /to/
しかし、いろいろ複雑ですが、ディレクトリ以下を丸々同期かけるという設定だったら最後にスラッシュをつけた方が安全安心設定です。要は終端にスラッシュを付けておけばディレクトリ同士の同期をやってくれるというわけです。また、下記にある除外ファイルの設定がわかるとさらに楽になります。

削除したファイルも同期する

rsync -a --delete /from /to
–deleteオプションを使います。同期元で削除したファイルは同期先(コピー先)でも削除されます。ファイルが肥大化しなくていいです。同期というのだからたいていの場合は–deleteをつけて実行します。

同期する際に除外するファイルを指定する

例えばwordpressなんかですと、wp_config.phpとか、.htaccssはDBやサーバーパスの情報が入っているのでそのままコピーするとコピー先のサーバーではうごかなくなってしまいます。通常のファイルバックアップだったらそのままコピー保存で問題ありませんが、動的なファイルをそのまま同期すると設定ファイル類も上書きされて困ってしまいます。そういう場合は、同期の際に除外するファイルを指定します。
rsync -a --delete --exclude '.gvfs' /from /to
とこんな感じになります。同期先に指定したファイルは転送されません。
ここでちょっと注意なのは、除外ファイルはフルパスなどで設定する必要がないことです。/fromという同期元のパスが指定されているので、そのパスを基軸にして–exclude ‘PAHT’ということになります。これはなかなか便利だけど、時折迷います。
この–excludeオプションは正規表現も使えます。ドットファイルなどを同期したくない場合はまとめて正規表現で指定します。
rsync -a --delete --exclude ".*" /from /to
複数の全く別のファイルを除外する場合は、そのまま複数指定します。
rsync -a --delete --exclude "aaa.pl" --exclude "bbb.pl" --exclude "ccc.pl" /from /to
あまりにも除外ファイルがたくさんある場合は、除外ファイルリストを作成してそれを読みこませるということができます。
--exclude-from=ignore_list
ignore_listというファイルを作成して、同期元のディレクトリからの相対パスで、
.htaccessやその他の同期してほしくないファイルを改行で羅列してゆけばOKです。そういえば、ですが、–excludeを指定するファイルのパスはフルパスとか駄目です。あくまでもrsyncで設定した同期元のディレクトリを中心にそこからの相対パスで書きます。

実行結果(実行内容)を詳細に表示させる

cronなんかで実行させるのだったらあんまり必要ないですが、端末でコマンド直叩きする場合だったら、その実行内容(同期をとったファイル(差異のあったファイル))のリストを一応見ておきたいものです。その時は、-vオプションを追加します。
rsync -av --delete /from /to
こんな感じです。

やたらと重いファイルは圧縮して送る

私もむかしはSCPコマンドでtarしたファイルを転送していました。SCPしてtarして結構面倒なのです。rsyncだったら圧縮して送信してその先で展開してくれるので便利。内部的な動作なので我々の目には見えませんが。重いファイルは圧縮して転送するのがよいです。-zオプションを使います。
rsync -avz --delete /from /to

SSHでリモート転送する

rsyncの醍醐味はやはりリモート転送なので、これは是非お試しください。バックアップを取るならリモートホスト感じゃないと本当は意味でないですし。SSHは非常に便利ですが、端末でコマンド直叩きの場合は通常のSSH接続で構わないですが、cronなどで実行する際にはパスワードなしの認証鍵を作らないとダメです。ここらの細かいSSHの解説は割愛しますが、全然わからないという人はSSHができるようになってからでので、sshの基本を学びましょう。
SSHを使う際には-eオプションを使います。
rsync -avz --delete -e "ssh username@example.com" /from /to
SSHの接続では手動でrsyncを使う場合は、パスワードがある秘密鍵を使うのでよいのだけど、たいていの場合はcronなどで自動的にバックアップをとっておくという仕組みを考えるわけでして、結局のところ-iオプションでパスワードなしの秘密鍵を指定するというのが大体のところなのではないかと。ポートの指定、秘密鍵の指定、SSHのバージョンと様々な細かい設定が必要な場合は以下のような感じになります。
rsync -avz --delete -e "ssh -i /home/user/.ssh/id_rsa" /from user@example.com:/to
ポートの設定とか鍵のパスとかSSHのバージョンとか暗号方式とかSSHのオプションはそのまま設定します。

rsyncのオプション一覧

さてrsyncのオプションですが、これが実に様々なものがあります。rsyncでは-aを多用しますが、この-aはたいてい使われるオプションセットをまとめて設定するものです。以下よく使うオプションの一覧です。
-v バックアップ中にコピーしているファイル名を表示する
-r 指定したディレクトリ以下を再帰的にコピーする
-l シンボリックリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-H ハードリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-p パーミッション属性をたもったままコピーする
-o 所有者属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-g グループ属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-t タイムスタンプをたもったままコピーする
-D デバイスファイルをたもったままコピーする
-z データを圧縮して転送する
-u 追加されたファイルだけをコピーする
-a 上記のオプションで「rlptgoD」を同時に指定する
–existing 更新されたファイルだけをコピーし、追加されたファイルは無視する
–delete コピー元で削除されたファイルは、コピー先でも削除する。-aオプションと同時に指定するとコピー元とコピー先を同期できる
–exclude ‘**’ **に一致するファイルはコピーしない。「*.bak」「*~」など特定のファイルを除外したいときに使う
この除外ファイルのパス指定は、rsyncの大元のディレクトリからの相対パスになります。
–stats コピーの結果を表示する。指定しないといっさいのメッセージは表示されない
–chmod rsync先の権限を変更するオプションを追加 –chmod=u+rwx
-e ssh 暗号化してファイルを転送する。コピー先としてネットワークでつながった別のホストを指定するときに使う
変わり種としては–chmodなんていうのもある。コピー先(同期先)でのパーミションの調整ができるというものです。rsync Permission deniedになった時には有効です。オプションなどをいっぱいくっつけた実用的なコマンドというのは以下のようになるかもしれません。
rsync -avz --chmod=u+rwx --delete --exclude="wp-config.php" --exclude=".*" -e "ssh -i /home/user1/.ssh/id_rsa" /home/user/www/copy_dir user2@example.com:/home/user2/copyed_dir
長くてびっくりですが仕方ないです。これは、
  1. まず-aでもって、再帰的にコピー、シンボリックリンクも同様にコピー、パーミッションを保ったままコピー、タイムスタンプも保持してコピー、グループを保持してコピー、オーナー権限も保持してコピー、デバイスファイルを保持してコピーということになります。
  2. -vは実行中にそれぞれの作業を表示してくれるオプション。
  3. それから、-zで転送データを圧縮して送るというオプション。これでだいたいのところは大丈夫です。バッチ処理的に行う場合は-vは必要ないかもです。
  4. それから、パーミッションの問題が出てきたら–chmod=u+rwxでもってすべての権限を持たせてあげるのがいいです。
  5. で、コピーしなくてもいいファイルが(上記の場合はWordpressの設定ファイルだけど)設定ファイル類、configファイル類だと思うので排除。また.htaccessとかの隠しファイル類もたいていの場合ホストごとに別の用途があると思われるので排除。
  6. 最後にSSH接続の設定を-eオプションで行うわけですが、この際、パスワードなしの秘密鍵認証を行います。予めパスフレーズなしの秘密鍵を生成してセットしておく必要があります。ここらはSSHの設定で個別にやっておく。
  7. コピー元とコピー先のディレクトリ指定が間違っていないかどうか確認して終わり。

rsyncの諸々豆知識的注意点

  1. –exclude=”xxxxx.php”とかやって同期除外設定をすると、再帰的にxxxxx.phpと同名のファイルが同期されなかったのでちょっとびっくりです。同期元・同期先のディレクトリをトップとして相対的にパスを指定するのかと思ったけど、全然そうじゃないです。こちら外部ファイルとして同期除外ファイルを設定できるので、できればそっちを使った方がいいですね。
  2. reverse mapping checking getaddrinfo for [HOSTNAME] failed – POSSIBLE BREAK-IN ATTEMPT!というエラーみたいなものが出ることがあります。これは「接続元」のサーバーに正しいホスト名が設定されていないことが原因なので、/etc/hostsに[HOSTNAME]を加えてください。
  3. 送信先のサーバーにrsyncがインストールされていないとリモートホストでは使えません。もし送信先にインストールされていない場合は「bash: rsync: コマンドが見つかりません」というエラーが出ます。
 

rsyncで差分ファイルのリスト化をする(差分ファイルの確認)

差分をとってその差分ファイルをリスト化するだけ(同期しない)というのもできます。実際にコピーしないので確認作業にはとてもよいです。
rsync --checksum -nav -e ssh /home/user/data/ user@example.com:/home/user/data > diff.txt
みたいな感じです。オプションの-nをつけるのがポイントです。これ忘れると上書きされるのでご注意。ここでもパスの指定での最後のスラッシュに気をつけましょう。

 
| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 00:29 | comments(0) | - | pookmark |
            
2015.08.22 Saturday
rsync メモ2


$ rsync -av ~/dir1 /media/disk/backup/
ディレクトリも含めてコピーしたい場合:「/」なし

$ rsync -av ~/dir1/ /media/disk/backup/
そのディレクトリ以下のツリーをコピーしたい場合:「/」あり
| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 17:51 | comments(0) | - | pookmark |