「技術メモ」カテゴリーアーカイブ

ファイルの同期 rsync(+ssh)  注意:Bad configuration option: AuthorizedKeysFile

rsync(+ssh)でバックアップをする。
CentOS

tekitouser1@local1からtekitouser2@remoto2に/var/www/htmlをrsync(+ssh)で取りに行く。

★送信先のサーバ作業(ホスト名:remoto1):
■sshの設定ファイル作成
# vi /etc/ssh/ssh_config に下記を追加。

RSAAuthentication yes
PubkeyAuthentication yes

#注意 AuthorizedKeysFileの指定をすると書いてあるページがあるが、
#/etc/ssh/ssh_config: line 46: Bad configuration option: AuthorizedKeysFile
#のエラーになります。
#man ssh で見る限り、この指定(option)はない。ファイルは ~/.ssh/authorized_keysに書く。

■ssh再起動
/etc/init.d/ssh restart

★送信元のサーバ作業(ホスト名:local1)
■rsa ファイルを作る
# su -l tekitouser1
$ ssh-keygen -t rsa
問い合わせにはすべてenter

■公開ファイルを送信先にコピー
$ scp /home/tekitouser1/.ssh/in_rsa.pu tekitou2@remoto1:/home/tekitouser2/.ssh/

★送信先のサーバ作業(ホスト名:remoto1):
■公開キーファイルをssh指定のファイルに変更
#su -l tekitouser2
$ cd .ssh
$ cp id_rsa.pub authorized_keys

★送信元のサーバ作業(ホスト名:local1)
■実際のテスト
# su -l tekitouser
$ ssh tekitouser2@remoto1
で自動ログインできるか確認。
出来たら,logoutして、送信元に戻ってください。

■実際に送る。
# su -l tekitouser
$ rsync -avz -e ssh tekitouser2@remoto:/var/www/html/ /var/www/html/
実際に取りに行けかを確認してください。
元ファイルが削除されたら、削除するオプションは–deleteですが、あまりおススメしません。

Android Bazaar and Conference 2011 Winter に行ってきた。

行ってきました。東大で行われた丸山先生委員長の
Android Bazaar and Conference(アンドロイド端末のイベント)
丸山先生、ありがとうございます。

http://www.android-group.jp/abc2011w/index.html
下記の動画を貼ってありますが、運営者側の都合で消される場合があります。ご了承ください。

1)基調講演
丸山先生、いやぁ、昔っから、話の飛び具合がすごいけど、
今回も飛びがすごい。事前知識がないとほぼ理解不可能(笑)
ちなみに、僕はその業界にいるからわかるが・・・・

うーーん、丸山先生の授業をはじめて受けたのは
稚内短大ですが、もう、そのときは宇宙人がしゃべっているかと
思った。
やっと、この歳になって、丸山先生の頭の入り口に来た感じですね。

2)セカイカメラの頓智ドット株式会社 高橋憲一 effective Android NDK
AndroidでJAVAからネイティブコードを呼び出すには・・

NDKって何ですかという人にはWhat is the NDK?

うーーーん、ソースコードの使いまわしができるとすごい
嬉しいけど、大変そうな、気もする。

3)轟啓介(アドビ システムズ 株式会社 マーケティング本部 デベロッパーマーケティングスペシャリスト)
ここまで出来る!Androidアプリケーション開発 with Adobe Flex


パッケージ化がどうなるのか、もう少し調べる必要があるけど、
今年一番期待です。
これができるようになると、Android開発者が飛躍的に増える。

4)白石俊平(html5-developers-jp管理人)
HTML5によるリッチクライアント開発手法についてあれこれ

と受けてきました。
ちゃんと、丸山先生には挨拶してきました(笑)

受けられなかったけど、おもしろそうだったのは
・石黒 邦宏(いしぐろ くにひろ)株式会社ACCESS 取締役 常務執行役員 兼 最高技術責任者(CTO) 兼 最高情報責任者(CIO)
IP Infusion Inc. 最高技術責任者(CTO)
リアルタイム・ウェッブ時代におけるAndroidの意味


これは、共感できる。

・熊谷健太郎(グリー株式会社 メディア開発本部 ソーシャルメディア統括部 エンジニア)
スマートフォン版GREE HTML5+JavaScript & Android


勉強になります。

mysqlでクラッシュしたら。

mysqlでデータがクラッシュしたら、
myisamchkのコマンドを使います。

mysql本家本元でmyisamchk
http://dev.mysql.com/doc/refman/4.1/ja/table-maintenance.html

mysqlのMyISAM型 の実際のファイルは3つ構成で、*.frmと*.MYDと*.MYになります。これが壊れるので、定期バックアップが必要。
この3つのファイルの説明は下記に。I
ftp://ftp.oss.eznetsols.org/mysql/doc/refman/5.1/ja/crash-recovery.html%3Fff=nopfpls

数G単位の大容量データはコマンドで戻すのは、難しいのでミラーするか、ファイル自体をバックアップすることをおススメします。

参照可能にしたままバックアップができる標準コマンド
mysqlhotcopy の説明。
http://dev.mysql.com/doc/refman/5.1/ja/mysqlhotcopy.html

今更、大型汎用の知識が・・・

結局、巨大化していくデータ。

リアルタイムで処理できていたものが、そう、大型汎用時代のように、リアルタイムで処理できず、

夜間(早朝バッチ)が複雑に絡んでくるようになる予感(笑、笑えない)

そう、年配の開発者には一般常識。ITからの人にはまったく知らないJOBやJCLな考えが必要

になってくるのね。

JCLって何?はWIKIに聞いて。

http://ja.wikipedia.org/wiki/Job_Control_Language

ああ、こんなときに大型汎用系の知識が役に立つとは・・・

WordPressのCronが動かない

WordPressのCronが動かない方。

(定期処理、スケジュール処理が動かない方)

wp-cron-dashboardなどのプラグインを入れてもちゃんと登録されているのに

動かない方!

すごい大ミスをしていませんか?

公開前等で基本認証をかけてませんか?

基本認証についてはサーバ自体のアクセスは除外にすると動く場合があります。

はい、そのミスを本日やってしまいました。

アクセス設定の参考URLを挙げておきます!

http://mashimonator.weblike.jp/blog/2009/02/htaccessipbasic.html

http://httpd.apache.org/docs/2.0/ja/mod/core.html#satisfy

株式会社アバンドでは、WordPressなどのCMSツールを使った中規模から大規模までのWeb構築を行っております。

まずは、お気軽にお問い合わせください。

PHPのプラグイン開発で不思議なエラー

WordPressなどのプラグイン開発をしていて、「Cannot modify header information – headers already sent by」というエラーが出たら、ヘッダー処理のエラーなのですけど、エラーの指定行もなにもしていないのに・・・という場合。

プラグインのファイルに<?php ・・・・?>の上下にゴミ改行が入っているだけでこのエラーが出ます。

確認してみてください。他にもエラーになる要素はありますが、プラグイン化する前に

普通に動いていた場合はここを確認。

株式会社アバンドでは、WordPressなどのCMSツールを使った中規模から大規模までのWeb構築を行っております。

まずは、お気軽にお問い合わせください。

jquery-lightbox-0.5.jsで説明部分に改行コードを入れる場合

前回は、http://lokeshdhakar.com/projects/lightbox2/のlightbox に

改行を入れる場合でしたが、

今回は、jquery-lightbox-0.5.jsで説明部分に改行コードを入れる場合

http://www.huddletogether.com/projects/lightbox2/のjquery-lightbox-0.5.jsのバージョンになります。

下記のように変更します!

if ( jQueryMatchedObj.length == 1 ) {
settings.imageArray.push(new   Array(objClicked.getAttribute(‘href’),objClicked.getAttribute(‘title’).replace(/##/g,”<br   />”)));
} else {
// Add an Array (as many as we have), with href and title atributes,   inside the Array that storage the images references                      //change abund aoki
for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
settings.imageArray.push(new   Array(jQueryMatchedObj[i].getAttribute(‘href’),jQueryMatchedObj[i].getAttribute(‘title’).replace(/##/g,”<br   />”)));
}

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

if ( jQueryMatchedObj.length == 1 ) {
settings.imageArray.push(new  Array(objClicked.getAttribute(‘href’),objClicked.getAttribute(‘title’).replace(/##/g,”<br  />”)));
} else {
// Add an Array (as many as we have), with href and title atributes,  inside the Array that storage the images references                     //change abund aoki
for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
settings.imageArray.push(new  Array(jQueryMatchedObj[i].getAttribute(‘href’),jQueryMatchedObj[i].getAttribute(‘title’).replace(/##/g,”<br  />”)));
}

これで、うまくいくはずです。

safari1.3ではjquery-lightbox自体は使えません。

Lightbox v2.04で改行を入れたいが・・・

写真をカッコ良く見せる為にLightboxのJavascriptを使うのですが、
http://lokeshdhakar.com/projects/lightbox2/
しかし、説明文を入れるのにtitleに入れる形になる。下記が例。

<a href=”images/image-1.jpg” rel=”lightbox[plants]” title=”ああああああああああああああああああああああああ”><img src=”images/thumb-1.jpg” width=”100″ height=”40″ alt=”” /></a>

ここで説明文が長文になったときに改行を入れたいと思うと、、<br>タグを入れば改行される。

当然、W3Cのチェック(http://validator.w3.org/check)は通らない。

なので、通るように、##を入れると<br>に変更してくれるように作り変える。

Lightbox v2.04の場合は lightbox.jsの下記の2行の間に1行追加。

///////////////////////////////////////////////////////////////////////

var imageNum = 0;

if ((imageLink.rel == ‘lightbox’)){

////////////////////////////////////////////////////////////////////////

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

///////////////////////////////////////////////////////////////////////

var imageNum = 0;

imageLink.title = imageLink.title.replace(/##/g,”<br />”);

if ((imageLink.rel == ‘lightbox’)){

////////////////////////////////////////////////////////////////////////

さらに、追記です。このままだと、Next機能に対応できない為、下記の行も変更。

///////////////////////////////////////////////////////////////////////

collect(function(anchor){ return [anchor.href, anchor.title; }).

///////////////////////////////////////////////////////////////////////

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

///////////////////////////////////////////////////////////////////////

collect(function(anchor){ return [anchor.href, anchor.title.replace(/##/g,”<br />”)]; }).

///////////////////////////////////////////////////////////////////////

変更後、HTMLを書く。
<a href=”images/image-1.jpg” rel=”lightbox[plants]” title=”あああああああああああ##あああああああああああああ”><img src=”images/thumb-1.jpg” width=”100″ height=”40″ alt=”” /></a>