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
30      
<< September 2018 >>
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用 の貼り付けコード作成する!
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2016.11.25 Friday
ちょっとめんどくさい作業を..バッチを置いたフォルダのサブフォルダのtextを結合する。

ちょっとめんどくさい作業を..バッチを置いたフォルダのサブフォルダのtextを結合する。

1行ごとなのはファイルごとだと文字数制限で足りなくなるから

 

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 13:58 | comments(0) | - | pookmark |
            
2016.11.08 Tuesday
batファイルのあるパスのフォルダのパスを作成 ペースト用フォルダを_autoを追加したパスを作成 親フォルダに行ってコピー ペースト

batファイルのあるパスのフォルダのパスを作成 ペースト用フォルダを_autoを追加したパスを作成 親フォルダに行ってコピー  ペースト

動作確認:windows7

bat

Create path of folder with bat file path.

Create paste folder _auto added path.

Go to the parent folder and copy paste.

xcopysimple.bat batファイルのあるパスのフォルダの親フォルダに行ってコピー _autoを追加したフォルダにペースト

 

 

 

 

 

 

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 14:39 | comments(0) | - | pookmark |
            
2016.01.05 Tuesday
Mac OSX 10.11.1 El Capitan で ssh_config を設定してパスワードなしsshログイン
Mac OSX 10.11 El Capitan で ssh_config を設定してパスワードなしsshログイン
 

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

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

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

ここ

  1. を参考に


システム環境設定でリモートログインを許可すると
ssh whaison@10.15.21.70
他のPCでログインできますとなる。


サーバ接続には SSH 接続のみを許可し、パスワード認証は不許可にする。
/private/etc/ssh/sshd_config
...(省略)
PasswordAuthentication no
...(省略)
ChallengeResponseAuthentication no
...(省略)
上記のように書きなおしたら、ssh を再起動する。

//cat .ssh/id_rsa.pub >> .ssh/authorized_keys //自分のマシンにはログインできないようだ。

クライアントのid_rsa.pub公開鍵を適当にダウンロードした場合
cat /Users/whaison/Downloads/id_rsa.pub >> .ssh/authorized_keys
で公開キーをサーバーマシンのauthorized_keysに登録する

んで確認
MAC0006:~ b07246$ ssh whaison@10.15.21.70

Last login: Tue Jan  5 16:10:32 2016 from 10.15.21.70

noboru-no-MacBook-Pro:~ whaison$

できた!

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 16:24 | 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
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 |
            
2015.08.22 Saturday
MacOSX10.10.4 Yosemiteでsshで rsync ってどうすればどう同期なんのか?



noboru-no-MacBook-Pro:~ whaison$ rsync

rsync  version 2.6.9  protocol version 29

Copyright (C) 1996-2006 by Andrew Tridgell, Wayne Davison, and others.

<http://rsync.samba.org/>

Capabilities: 64-bit files, socketpairs, hard links, symlinks, batchfiles,

              inplace, IPv6, 64-bit system inums, 64-bit internal inums

rsync comes with ABSOLUTELY NO WARRANTY.  これは、フリーソフトウェア, and you

are welcome to redistribute it under certain conditions.  See the GNU

General Public Licence for details.

rsync is a file transfer program capable of efficient remote update

via a fast differencing algorithm.
rsyncは効率的なリモートアップデートができるファイル転送プログラムです。

使い方:
Usage: rsync [OPTION]... SRC [SRC]... DEST

  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST

  or   rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST

  or   rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST

  or   rsync [OPTION]... [USER@]HOST:SRC [DEST]

  or   rsync [OPTION]... [USER@]HOST::SRC [DEST]

  or   rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect

to an rsync daemon, and require SRC or DEST to start with a module name.

Options

-v, --verbose               increase verbosity コピーしているファイル名やバイト数などの情報を表示します。

 -q, --quiet                 suppress non-error messages

     --no-motd               suppress daemon-mode MOTD (see manpage caveat)

 -c, --checksum              skip based on checksum, not mod-time & size

-a, --archive              archive mode; same as -rlptgoD (no -H) コピー元のディレクトリを再帰的にオーナー・グループ・パーミッション・タイムスタンプをそのままコピーします。オプション -rlptgoD と同じです。

     --no-OPTION             turn off an implied OPTION (e.g. --no-D)

-r, --recursive             recurse into directories ディレクトリ内を再帰的にコピーします。

 -R, --relative              use relative path names

     --no-implied-dirs       don't send implied dirs with --relative

 -b, --backup                make backups (see --suffix & --backup-dir)

     --backup-dir=DIR        make backups into hierarchy based in DIR

     --suffix=SUFFIX         set backup suffix (default ~ w/o --backup-dir)

-u, --update                skip files that are newer on the receiver コピー元とコピー先を比較し、追加・更新されたファイル・ディレクトリのみをコピーします。

     --inplace               update destination files in-place (SEE MAN PAGE)

     --append                append data onto shorter files

 -d, --dirs                  transfer directories without recursing

 -l, --links                 copy symlinks as symlinks シンボリックリンクをそのまま(ターゲットの指定を変えずに)コピーします。

 -L, --copy-links            transform symlink into referent file/dir

     --copy-unsafe-links     only "unsafe" symlinks are transformed

     --safe-links            ignore symlinks that point outside the source tree

 -k, --copy-dirlinks         transform symlink to a dir into referent dir

 -K, --keep-dirlinks         treat symlinked dir on receiver as dir

 -H, --hard-links            preserve hard links

 -p, --perms                 preserve permissions パーミッションをそのままコピーします。

     --executability         preserve the file's executability

     --chmod=CHMOD           affect file and/or directory permissions

-o, --owner                 preserve owner (super-user only) オーナーをそのままコピーします。
 -g, --group                 preserve group グループをそのままコピーします。

     --devices               preserve device files (super-user only)

     --specials              preserve special files

 -D                          same as --devices --specials

 -t, --times                 preserve times タイムスタンプをそのままコピーします。

 -O, --omit-dir-times        omit directories when preserving times

     --super                 receiver attempts super-user activities

 -S, --sparse                handle sparse files efficiently

 -n, --dry-run               show what would have been transferred

 -W, --whole-file            copy files whole (without rsync algorithm)

 -x, --one-file-system       don't cross filesystem boundaries

 -B, --block-size=SIZE       force a fixed checksum block-size

 -e, --rsh=COMMAND           specify the remote shell to use

     --rsync-path=PROGRAM    specify the rsync to run on the remote machine

     --existing              skip creating new files on receiver

     --ignore-existing       skip updating files that already exist on receiver

     --remove-source-files   sender removes synchronized files (non-dirs)

     --del                   an alias for --delete-during

 --delete                delete extraneous files from destination dirs コピー元にない(削除された)ファイルをコピー先で削除します。コピー元とコピー先を同期します。

     --delete-before         receiver deletes before transfer (default)

     --delete-during         receiver deletes during transfer, not before

     --delete-after          receiver deletes after transfer, not before

     --delete-excluded       also delete excluded files from destination dirs

     --ignore-errors         delete even if there are I/O errors

     --force                 force deletion of directories even if not empty

     --max-delete=NUM        don't delete more than NUM files

     --max-size=SIZE         don't transfer any file larger than SIZE

     --min-size=SIZE         don't transfer any file smaller than SIZE

     --partial               keep partially transferred files

     --partial-dir=DIR       put a partially transferred file into DIR

     --delay-updates         put all updated files into place at transfer's end

 -m, --prune-empty-dirs      prune empty directory chains from the file-list

     --numeric-ids           don't map uid/gid values by user/group name

     --timeout=TIME          set I/O timeout in seconds

 -I, --ignore-times          don't skip files that match in size and mod-time

     --size-only             skip files that match in size

     --modify-window=NUM     compare mod-times with reduced accuracy

 -T, --temp-dir=DIR          create temporary files in directory DIR

 -y, --fuzzy                 find similar file for basis if no dest file

     --compare-dest=DIR      also compare destination files relative to DIR

     --copy-dest=DIR         ... and include copies of unchanged files

     --link-dest=DIR         hardlink to files in DIR when unchanged

 -z, --compress              compress file data during the transfer
    --compress-level=NUM    explicitly set compression level
通信を圧縮します。

 -C, --cvs-exclude           auto-ignore files the same way CVS does

 -f, --filter=RULE           add a file-filtering RULE

 -F                          same as --filter='dir-merge /.rsync-filter'

                             repeated: --filter='- .rsync-filter'

     --exclude=PATTERN       exclude files matching PATTERN

     --exclude-from=FILE     read exclude patterns from FILE

     --include=PATTERN       don't exclude files matching PATTERN

     --include-from=FILE     read include patterns from FILE

     --files-from=FILE       read list of source-file names from FILE

 -0, --from0                 all *-from/filter files are delimited by 0s

     --address=ADDRESS       bind address for outgoing socket to daemon

     --port=PORT             specify double-colon alternate port number

     --sockopts=OPTIONS      specify custom TCP options

     --blocking-io           use blocking I/O for the remote shell

     --stats                 give some file-transfer stats

 -8, --8-bit-output          leave high-bit chars unescaped in output

 -h, --human-readable        output numbers in a human-readable format

     --progress              show progress during transfer

 -P                          same as --partial --progress

 -i, --itemize-changes       output a change-summary for all updates

     --out-format=FORMAT     output updates using the specified FORMAT

     --log-file=FILE         log what we're doing to the specified FILE

     --log-file-format=FMT   log updates using the specified FMT

     --password-file=FILE    read password from FILE

     --list-only             list the files instead of copying them

     --bwlimit=KBPS          limit I/O bandwidth; KBytes per second

     --write-batch=FILE      write a batched update to FILE

     --only-write-batch=FILE like --write-batch but w/o updating destination

     --read-batch=FILE       read a batched update from FILE

     --protocol=NUM          force an older protocol version to be used

 -E, --extended-attributes   copy extended attributes

     --cache                 disable fcntl(F_NOCACHE)

-4, --ipv4                  prefer IPv4 IPv4を使用します。

 -6, --ipv6                  prefer IPv6

     --version               print version number

IPv6を使用します。

(-h) --help                  show this help (-h works with no other options)

Use "rsync --daemon --help" to see the daemon-mode command-line options.

Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.

See http://rsync.samba.org/ for updates, bug reports, and answers

rsync error: syntax or usage error (code 1) at /SourceCache/rsync/rsync-45/rsync/main.c(1318) [client=2.6.9]



noboru-no-MacBook-Pro:~ whaison$ 

rsync -av dir1/ backup/



この状態で
 

noboru-no-MacBook-Pro:~ whaison$ rsync -av dir1/ backup/

building file list ... done

./

whaison/

whaison/jugem/

whaison/jugem/jp/

whaison/jugem/jp/mM1.jpg

sent 94696 bytes  received 66 bytes  189524.00 bytes/sec

total size is 94473  speedup is 1.00

noboru-no-MacBook-Pro:~ whaison$ 





こうなる。


こーんなかんじで突っ込んで
追加分のみコピーする場合
 

rsync -auv dir1/ backup/

noboru-no-MacBook-Pro:~ whaison$ rsync -auv dir1/ backup/

building file list ... done

./

.DS_Store

whaison/

whaison/jugem/

whaison/jugem/jp/

whaison/jugem/jp/?¥#202??¥#202??¥#203??¥#203??¥#203??¥#202??¥#203??¥#203¥#203?¥#203¥#210 2015-08-22 0.54.36.png

whaison/jugem/jp/?¥#202??¥#202??¥#203??¥#203??¥#203??¥#202??¥#203??¥#203¥#203?¥#203¥#210 2015-08-22 0.54.50.png

sent 76921 bytes  received 110 bytes  154062.00 bytes/sec

total size is 185258  speedup is 2.40

noboru-no-MacBook-Pro:~ whaison$ 



追加された。

リモートのテストしてみましょう
 

sshでログイン

MacOSX10.10.4 Yosemiteでは簡単にsshサーバーを立てられる様になっていて、  システム環境設定 > 共有  で
> リモートログイン を有効にするだけで sshで外から入れる様になります 1

この設定画面にIPアドレス(またはホスト名)も書かれてるので 書かれてる通りにsshコマンドを打てば外部から入れます。

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

The authenticity of host '172.20.10.6 (172.20.10.6)' 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 '172.20.10.6' (RSA) to the list of known hosts.

Password:

Last login: Sat Aug 22 00:29:51 2015

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

Password:

Last login: Sat Aug 22 02:09:46 2015 from 172.20.10.6

MacOSXのSSH認証は

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

$ sudo vi /etc/sshd_config

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


わり種としては–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
らしい
rsync -av --chmod=u+rwx -e ssh dir1 whaison@192.168.179.7:/backups/dir5
rsync -avz --chmod=u+rwx  -e "ssh -i /Users/whaison/.ssh/id_rsa" dir1 172.20.10.6:/dir5

rsync -a -e "ssh" --rsync-path="sudo rsync" /source/path /destination/path
rsync -a -e "ssh -i /Users/whaison/.ssh/id_rsa" --rsync-path="sudo rsync" /dir1 172.20.10.6:/dir5



ローカルのディレクトリをリモートマシンにコピー

ローカル環境のディレクトリをリモートマシン先(IPアドレス:172.20.10.6)にコピーします。最もよく使う例ですね。-z オプションを利用して通信を圧縮しています。

$ rsync -auvz dir1/ whaison@172.20.10.6:/ssh_test/whaison/
whaison@192.168.001.002's password: ← 指定したユーザー名(whaison)に対するSSHのパスワード認証です。
sending incremental file list
…
sent 617454230 bytes  received 266 bytes  11329440.29 bytes/sec
total size is 640680152  speedup is 1.04

通信には暗号化されたSSHプロトコルが利用されます。

 

ローカルのディレクトリとリモートマシンと同期

ローカルのディレクトリとリモートマシンのディレクトリを同期する場合は、--delete オプションを利用します。こうすることでローカルとリモートマシンのディレクトリを全く同じものにしてくれます(同期してくれます)。

$ rsync -avz --delete dir1/ whaison@172.20.10.6:/home/whaison/
sending incremental file list
deleting tmp.txt
…
sent 290 bytes  received 13 bytes  121.20 bytes/sec
total size is 640680044  speedup is 2114455.59

※ただし、ローカルに存在しないファイルがリモートマシン上にある場合は、そのファイルは削除されるので注意が必要です。ディスク容量に余裕がある場合、--delete オプションは利用しないほうがいいでしょう。

SSHのオプションを指定して、ローカルのディレクトリをリモートマシンにコピー

sshのオプションを指定する場合は、-e オプションを利用します。

SSHのセキュリティ強化のため通信のポート番号を変更している場合、ポート番号を明示してrsyncコマンドを実行します。以下は、ポート番号を56789に設定している例です。

$ rsync -auvz -e 'ssh -p 56789' dir1/ whaison@172.20.10.6:/home/whaison/
sending incremental file list
…
sent 639 bytes  received 213578 bytes  10449.61 bytes/sec
total size is 1105199212  speedup is 5159.25

これでOKです。「sshコマンド」の部分はシングルクォーテーションではさみましょう。sshコマンドの他のオプションもこの方法で指定します。




参考サイト
http://webkaru.net/linux/rsync-command/

| whaison | shell,batch,cmd,WindowsScriptHost,Jscript,vbs | 00:34 | comments(0) | - | pookmark |