mahoyaya’s diary

主に自分用メモです

nc(netcat)でファイル転送

(引っ越し)よく忘れるので覚え書き。

Windows用です。

 

★nc単体でひとつのファイル転送する。
受信側:
nc -l -p ポート番号 > ファイル名

送信側:
nc 宛先IPアドレス ポート番号 < ファイル名

★UnxUtilsなどのtarとncを組み合わせて複数のファイル転送をする。
受信側:
nc -l -p ポート番号 | tar cvf -

送信側:
tar cvf - * | nc 宛先IPアドレス ポート番号
↑実行したディレクトリ配下のファイルを全て転送する

tarにzオプションをつければgz圧縮されて転送されるが、どちらが転送に有利かは不明。
当然の事ながら、PATHが通っていない場合はフルパスにすること。
Linuxなどの場合は-lオプションが不要だった気がする。

とりあえずここまで。

metaio Creatorでmy serverが設定出来ない

(引っ越し)先日ARマーカーを使用し、Junaioと連携したコンテンツを作成したところ、my serverへの接続でエラーが出て困ったので、忘れる前にその時の記録残します。
実は公式サイトの日本語フォーラムにも回避策を投稿したのですが、公式のコメントが少し誤解を招くような表現だったので、自分のblogにも載せることにしました。
 
症状:
MacOS 10.9の環境下でmetaio Creator 3.5.1を使用し、さくらインターネットのサービスを利用して、my serverを設定したところ、Creator detected a problem uploading files to your FTP server.という原因不明のエラーが出力されmy serverの設定が適用出来ない。
多分WindowsLinuxでも同じ。
 
格闘の記録:
my serverの設定でftpサーバーを登録する場合、
という様な「URL+チャンネルディレクトリパス」の設定を行いますが、症状で記載したエラーが出力され困りました。
手動でftpコマンドを使用した場合は問題なくログイン出来ますし、設定したディレクトリパスが存在していても、この症状になります。
はっきり言ってこのエラーメッセージだけでは意味不明です。
エラーの原因としてFTPサーバーの設定がおかしいというメッセージしか出ません。
 
そこでパケットキャプチャによる確認を行ったところ、ログイン後のディレクトリ移動でNo such file or directoryのエラーが発生して終了していることがわかりました。
しかし、そんなはずはないのです。
手動ではFTPコマンドでも、Google Chromeからでも接続可能です。
そもそもwwwというディレクトリはさくらインターネットでwebページを公開する場合に使用するディレクトリであるため、ホームディレクトリ直下に間違いなく存在しているものです。
 
そこで、パケットキャプチャしたデータからCreatorがFTPを実行した際の動作をトレースしたところ、Creatorの動作として以下の様な動きをしていることがわかりました。
Creatorの問題点も同時に記載します。
 
1. ログイン
2. pwd
3. cd /www <-問題1 ルート直下ではなくホーム直下なので存在しない
4. quit
5. ログイン
6. pwd
7. mkdir /www <-問題2 ルート直下は利用できないので作成できない
8. cd /www <-存在しないのでエラー
9. quit
10. ログイン
11. cd / <-問題3 ルートへ移動する必要がない
12. cd www <-存在しないのでエラー
13. quit
 
 
ご覧の通り、3パターンの動作を行うのですが、ルートディレクトリ直下に指定されたフォルダがある前提の奇怪な動きをします。
ルートディレクトリに移動できない、もしくはホームディレクトリが擬似的なルートディレクトリとして設定されたFTPサーバーであれば問題ないと考えられますが、ルートディレクトリに移動可能なFTPサーバーの場合は必ず問題が発生します。
正直バグっぽいです。
 
マニュアルを読んでもこの動きをしていることは分かりませんし、エラー画面からも何をした結果、どんな問題が発生したのかわからず不親切です。
というわけで以下、回避策です。
 
回避策:
結論としてさくらインターネットの場合は以下の設定でこの問題を回避可能でした。
※Channel_IDは任意のチャンネル名です。
 
HTTP設定
 
FTP設定
 
FTPサーバー上でルートディレクトリへ移動可能である場合は、uriをルートディレクトリからのフルパスで指定する必要があります。
これはmetaio Creatorがホームディレクトリを意識してくれないためです。
未確認ですが、WindowsLinuxでも同じではないかとおもいます。

HTTPの設定は指定された公開用ディレクトリ配下に存在するディレクトリを指定する必要があります。
特に問題がなければ任意のChannel_ID名でディレクトリを作成し、それを指定するだけで良いと思います。
 
CreatorのMy server接続でお困りの方は是非試してみてください。
 
以上