2013年02月05日

mysql を止めようとすると止めさせてくれない。


mysql を止めようとすると止めさせてくれない。

どこかの誰かが謎の設定方法で構築したサーバを止めようとしたらエラー。

これが延々と出続ける。

一旦 mysqld プロセスを止めると、どこからともなく 別の mysqld プロセスが起動して、「もうたちあがってるじゃねーか」というエラーが出続けるみたい。

kill, killall を使って mysqld を消しても mysqld は復活する。chkconfig が入っていないので自動起動設定も見ることができず、ubuntu は別のツールを使って自動起動設定をするらしいが、それにあたるものもインストールされた形跡がない。むむむ・・・


sudo /etc/init.d/mysql stop をやったら止まった!


posted by けんじ at 17:52 | Comment(0) | Linuxation
2013年02月04日

mysql を別サーバにコピー


性能の問題が出てきたため、別サーバ(AWS)にデータベースを移した。

元データのエクスポート Ubuntu

$ mysqldump -u user_name -p > backup_20130204.sql

移す先のサーバ設定。Amazon Linux

接続テスト

mysql -h host_name -u user_name -p


posted by けんじ at 12:18 | Comment(0) | Linuxation
2013年02月03日

Debian Chrome で flash が見えないとき


Debian で過ごすという異質の生活をしております。

なぜか昨日から Chrome で flash が見えなくなりました。そこで config://plugins へアクセスして、/usr/lib/flashplugin-nonfree/libflashplayer.so だけを有効にしたら見えるようになりました。


posted by けんじ at 08:35 | Comment(0) | Linuxation
2013年01月30日

毎日データをエクスポート・インポート


サーバを移すとかいろいろあってやったことのメモ。

目的:移行期1か月程度、毎日あるデータベースから別のデータベースにデータを移したい。

元データサーバ(ubuntu, mysql)

  • cronでエクスポート
  • データは暗号化しておく

まず、特定のディレクトリを作って公開。nginx の location のところで root の設定をする。location /export-data/ { root /.... } 。

mysql からエクスポートするためのスクリプトを記述。タイムスタンプの形式がおかしいデータは無視するよう、正規表現で条件を絞っている。フィールドのデータの中にダブルクオートが入っている場合は、おそらく入力することはないであろう特殊文字列に変換。

出力したデータは、そのままでは postgres に入らないので、sed でいくつか変換。

出力先のディレクトリは、777にアクセス権を設定すればよいのだが・・・このエクスポート自体は mysqld を実行しているユーザの権限で実行される。そのユーザは、ps -ed|grep mysql とかやると出てくる。凝った設定をしていなければ mysql。というわけで、777にはせず、ディレクトリ所有者を mysql に変更(sudo chown mysql:mysql /...)、アクセス権は 701 にした。1ってのは、ngrex がファイルを扱うために必要みたい。

zip file.zip file.csv -P xxxxx で圧縮・暗号化。-P でパスワードを指定。

最後に csv を削除。

これを3つのテーブルについて行うようスクリプトにして保存し、毎日午前3時に実行するように cron を設定。下のような感じ。

cron で夜中3時に動くようにする。 >> filename 2>&1 でログを書きだす。

新サーバ(Amazon Linux, postgresql)

  • curlでデータ取得
  • unzip で暗号化解除・展開
  • postgresql にインポート

postgres ではパスワードをコマンド上で指定できないので、 $HOME/.pgpass にデータを一旦書き込む。このファイルは後程削除する。

アクセス可能なサーバのファイルを取得して、暗号解除。そのあとでインポート、特殊文字列の逆変換を行う。


cd をするためには x 権限が必要

mysql ではnullが \N でエクスポートされた。

mysql から postgresql に移行しているわけだが、mysql のエクスポートはちょっと厄介だ。AWS上 でやっているのだが、ubuntu では "${1} INTO OUTFILE ${2}" ってな感じで、$2 のディレクトリが ubuntu ユーザのホームフォルダ内のディレクトリであっても、owner を mysql にしていればエクスポートできた。しかし、Amazon Linux では、どうやら対象ディレクトリに至るまでのすべてのディレクトリに mysqlユーザの書き込み権限がないとダメみたい。詳しくは調べていないけど。で、どうなるかというと、${2} にファイル名だけを指定すると mysql のホームフォルダ(echo ~mysql で表示できる)に出力される。

mysql でスクリプトからエクスポートする場合は、なぜか root ユーザでないとエクスポートできなかった。

psql の COPY table_name TO ... では、ファイル名をシングルクオートで囲まないとエラー。ファイル名は絶対パスで指定しないとエラー。書き込み先ディレクトリ(親ディレクトリを含む)にサーバを実行しているユーザ(通常 postgres)の権限がないとエラー。(Amazon Linux)


posted by けんじ at 23:39 | Comment(0) | Linuxation
2013年01月06日

Debian で gem install mysql2 をやったらエラー


日経ソフトウェア2011.9 を使って Ruby をやってみようと思ったが、最初の rails -d mysql webmemo でエラー。

なんか形式が違うみたいで・・・ rails new webmemo --database=mysql を実行。すると下のように出てきた。mysql2がインストールできんとか言われた。

原因はよくわからなかったが、とりあえず mysql2 のみインストールしてみる。

なんか dev 系のパッケージがないっぽい。

sudo apt-get install libmysqlclient-dev をやって、rails new ... をやったらうまくいった。(yum では mysql-devel とかネットで見た。)


posted by けんじ at 11:42 | Comment(0) | Linuxation
2012年12月13日

Linux をトーキングクロックにする案


常時稼働するLinuxがあるなら、音声ファイルとcronを使って1時間ごとに時刻を伝えるようにできるよね?

布団から出たくないのと近くに時計を置いていないことから生まれたこの発想。

電子工作ができればもっとイカしたものも作れるかなぁ。


posted by けんじ at 09:21 | Comment(0) | Linuxation
2012年12月03日

Linux で windows っぽいことをする


Linux で windows っぽいことをするためのソフトを集めてみた。

PlayOnLinux

実態は Wine らしい。もともとは Linux で InternetExplorer を使用する場合に使うソフトとして 日経Linux に掲載されていたが、調べたとろこれがあれば Windows ソフトを そのまま使えるみたい。

Banshee

iTunes に代わる Linux 上の 管理ソフト。iTunes の代わりといえば Amarok だという話を昔聞きましたが・・・。

Shotwell

WindowsLiveフォトギャラリーに代わるもの。WindowsLiveフォトギャラリーよりも使い勝手がよいと思う。

OpenShot Video Editor

Windows ムービーメーカー の代わり。Windows Movie Maker と同じように基本的なことしかできませんが、単純な物でよいという人にはうってつけのモノになりそうです。

Mozc

日本語入力ソフト。Linuxの場合はAnthyが標準だが、こいつも使える。ポイントは予測変換ができるところ。Windows のナニに対応するとかいうものではない。

jEdit

高機能テキストエディタ。Windows では秀丸ってのが超高機能らしい。Vim になれたらやっぱり Vim かなとも思うが。


posted by けんじ at 10:37 | Comment(2) | Linuxation
2012年11月30日

/tmp の権限


Linux で /tmp ディレクトリ下にディレクトリを作るときの話。

私の場合は /tmp/php をセッションの保存先に指定して OpenPNE をやってみようとしていた、がログインできない。ログインボタンをクリックすると、同じページが再読み込みされるみたい。

log を見たところ、どうやら /tmp/php ディレクトリ のアクセス権がおかしかったらしい。/tmp は 1777 だけど、/tmp/php はいつもの 755 になっていた。


スティッキービット

1000 はスティッキービットとよばれ、chmod o+t でも設定できる。これが指定されたディレクトリでは、ファイル所有者以外の人は当該ファイルを削除することができない。


posted by けんじ at 23:30 | Comment(0) | Linuxation
2012年11月27日

止まらないディスクアクセス


CentOS 6.0 でサーバを構築してはや1か月。未だに謎のディスクアクセスが解決できない・・・。

症状は http://kajuhome.com/patio_thread/527.shtml にあるのに似ている。

起動とともに止まらないディスクアクセスが始まる。どのプロセスなのかはよくわからない。そして cron が動かない。

しかしディスクアクセスの音が止むと、コマンド入力後のレスポンスがなくなる。無反応になるのだ。

/etc/updatedb.conf に DAILY_UPDATE ってのもなかったし・・・なにが原因?

iotop ってのをインストールするとディスクIOについて詳しく調べることができるらしいが、python のバージョンの問題でインストールできなかった。


と思っていたら・・・どうやらディスクアクセスが問題ではなかったみたい・・・。DiCE っていうやつをインストールして、IPアドレスが変わったら登録サイトの情報も更新するようにしていたら、騒音が鳴り響いていたということ。とりあえず kill コマンドで終了させたらとまった。


posted by けんじ at 12:45 | Comment(0) | Linuxation
2012年11月25日

/etc/apt/sources.list のメモ


apt コマンドの設定ファイル。

各行頭にある、deb, deb-src は パッケージを取得するのか、ソースファイルを取得するのかを指定する。

取得先のURL に続けて バージョン名または stable(安定版) かが記述され、最後にソフトウェアの種別を指定する。main: フリーソフトウェア、contrib: フリーでない依存関係のあるフリーソフトウェア、non-free: 再配布に制限があるソフトウェア。

non-free は無料で使えるので注意。


posted by けんじ at 20:59 | Comment(0) | Linuxation

Linux に デフラグ がない理由


Linux にはデフラグがない。Windows にはある。

Linux の ext ファイルシステムでは、ファイルを作成するとブロックが作り、ファイルをブロックで管理しているというのがその理由。

Linuxでは ファイルシステムを作成すると いくつかのブロック・グループというのが作成される。ブロックというのはデータを記録する単位。(windows でいうところのクラスタみたいなものらしい。)

ここで作られるひとつののブロックは、2KBi とか 4KBi といったサイズになっている。そして、どんなに小さなファイルを作ってもそのファイルのための領域が 1ブロックは確保される。(ブロックサイズは ls コマンド で見られたような気がする。)

ブロック・グループというのはディスク内での連続したブロックの集まりのこと。

Linux ではこのブロックグループを利用して、1つのファイルをできるだけ連続した領域に割り当てるから、デフラグがない。あるディレクトリのファイルについてはできるだけ同じブロックグループに作られる。(デフラグは完全にいらないのかというとそうでもない気がするが)Linux にデフラグがない理由はブロックグループを使うからなのである。

一方の windows は、パーティションの中で最初に見つかった空き領域から順に使っている。そんなわけでデフラグなしでは危険なのであった。


posted by けんじ at 11:31 | Comment(0) | Linuxation
2012年11月10日

Linux コマンドで電池残量を確認


ノートパソコンにVineLinuxを入れて使っています。そのノートパソコンの電池残量をコマンドで確認する方法・・・

present rate が11800mWなので、あと2時間くらい。消費電力が一定だとしたら。

acpi は電源管理を扱うものらしい。


posted by けんじ at 07:41 | Comment(0) | Linuxation
2012年10月24日

Linux で 画面の明るさを調整する方法


LINUX で明るさを設定する方法はないものかと探していたら・・・

echo -n 5 > /sys/class/backlight/panasonic/brightness

でできました。当初、このファイル内には 10 という数値が入っていました。ルート権限で行うこと。ちなみに僕のこのパソコンは、Panasonic の Let's Note W5 です。

echo -n 100 > /proc/acpi/video/VGA/LCD/brightness

でできるという情報が載っていましたが、僕の所で less /proc/acpi/video/GFX0/LCD1/brightness yとやったら、 <not supported> と出てきました。

brightness のファイルはシステムがずっと監視しているんですね。ちなみに、

/proc - バーチャルファイルシステム用の特別なディレクトリ
/sys - デバイスの情報が入っているディレクトリ

らしいです。/proc は 接続されたデバイス情報とか入ってた気がします。


ガンマ値を変えるには xgamma -gamma 0.5 みたいにやります。xgamma --help とやれば使い方が見えます。

ガンマ値とは、入力された信号の強さに応じて変化する輝度を表す指標

ってことらしいです。ふーん。

http://www.cambridgeincolour.com/tutorials/gamma-correction.htm によると・・・、我々の目はカメラのようには出来ておらず、暗い所での明るさの変化を強く感じ、明るいところでの明るさの変化をあまり感じないようにできている。ほんで、ガンマ補正 Gamma Correction ってのはなにかっていうと、写真を人間の目によく見えるように明るさを調整すること。ページを覗くとガンマ値と写真補正の例が載っているね。

http://www1.interq.or.jp/sira/yorozu/cg_tips/gamma/index.htm を見ると、三角関数がからんでいるとかかいてある。たぶん、ガンマ補正をするための関数が三角関数から成り立っているってことなんだと思う。でそのパラメータがガンマ値なんだな。

ちなみにこいつはコンピュータによって違うらしい。でもだいたい2.2みたい。ガンマ値によって写真の補正を変化させるとか CSS でできたりするのか??


posted by けんじ at 20:25 | Comment(0) | Linuxation
2012年10月12日

Debian で lha CDNとは何者?


Debian で lzh 形式の 圧縮ファイルを展開しようと思ったが、lha が見つからない。lha は lzh ファイルを 展開するプログラムなのだが・・・。

apt-get install lha ではパッケージが出てこない。nonfree らしい。というわけで、/etc/apt/sources.list に下の記述を追加しました。

deb http://cdn.debian.or.jp/debian/ stable main contrib non-free
deb-src http://cdn.debian.or.jp/debian/ stable main contrib non-free

cdn というのはよく見かけますがいったいなにものなんでしょう?

これは Contents Delivery Network というもので、あなたが Debian を使用しているネットワークが属する国・地域に最適化したミラーサーバを選択しますということらしいです。下のページに説明が載っています。

http://www.debian.or.jp/community/push-mirror.html


apt-cache search lzh を実行すると jlha-utils というのが見つかります。これをインストールするのもありですね。

・・・やってみたけど、処理速度は遅く、PDFのパスワードを正しく入力してもPDFが見られないという地獄に陥った。


posted by けんじ at 22:46 | Comment(0) | Linuxation
2012年09月29日

LINUX でファイル名が文字化けしたとき


無料でダウンロードしたPDFなどのファイルが、linux の ls コマンド で文字化けしていたということはないでしょうか? windows で作られていたりすると、こうなります。

Linux では、UTF-8 でないと表示できません(ターミナルでUTF-8を使っているから)。nkf コマンド をインストールすれば、 ls | nkf -w で UTF-8 にした後のファイル名を見ることができます。しかし・・・

それではファイル名の変換は行われません。そこで、そのスクリプトを作りました。

cfn.sh

nkf がインストールされているマシンでないと動きません。使い方は $ ./cfn.sh -w (ファイル名) です。ファイルが複数ある場合は後ろに並べてください。 -w を -e などに変えると、EUCのファイル名にできたりします。(そんな機能いるのか?と思ったりする。)

./cfn.sh -w * でも問題無しです。元からUTF-8のファイル名については(mvコマンドのエラーが出ますが)書き換えられることはありません。

コードは以下のとおり。

(この記事には続きがあります)


posted by けんじ at 08:47 | Comment(0) | Linuxation
2011年12月22日

Apache2 + PHP5 で magic_quotes_gpc = off に設定


POST を使って投稿したデータが・・・ mysql から取り出すと ・・・バックスラッシュが増えてる!!! なんてことになったので、調べてみた。

Twitter でつぶやけど、誰も教えてくれないので、ひたすら検索しまくりました。そしたら、magic_quotes_gpc という設定値が ON になっているらしいとのこと。

magic_quotes_gpc の機能は・・・ バックスラッシュがあったらもひとつバックスラッシュをつけてエスケープっぽいことをする、ということです。Get, Post, Cなんとか のときに、送受信データにバックスラッシュをつけて処理するんだそうです。するとですね、予期しないところにバックスラッシュが勝手に入るわけですよ。もう悲惨です。

解決策

で、どうするかというと、まずは magic_quotes_gpc が ON になっていることを確認します。php ファイルの中で echo phpinfo() なんてやってやると出てきます。ほかにも方法はありますが、どうしても知りたかったら検索してください。

次に設定を変更します。ファイル内でオン・オフを判別してif文で処理を分岐させるという手もありますが、現在では非推奨機能となっており、php6で消滅する予定なので、if文なんて書くだけ無駄です。設定ファイルですが、debian lenny, apache2, php5 を使っている私の環境では、/etc/php5/apache2/php.ini でした。

それでは、 cat -n /etc/php5/apache2/php.ini | grep magic と書いてみましょう。はい、457行目に"magic_quotes_gpc=ON"とあるのがわかります。では、 vim file_name でファイルを開き、:457 と入力して Enter を押します(これで457行目に飛びます)。編集して保存。

最後に apache2ctl restart を実行して検証です。

(この記事には続きがあります)


posted by けんじ at 00:49 | Comment(0) | Linuxation
2011年12月04日

フォルダのサイズを表示する


LINUX で、とあるフォルダの中にあるファイルやフォルダのサイズを表示したい時の方法。

du -h * --max-depth=0

--max-depth でどれだけ下の階層まで表示するかを決める。もし、du -h * とやると、全階層のファイル・ディレクトリが表示されるので、--max-depth=0 にする。-h は、適当な単位で表示するためのオプション、-m でメガバイト、-k でキロバイト。

ls -l をやってみたんだけど、これだとディレクトリが4kbで表示される。ディレクトリ内部のサイズを合計したものじゃなくて、ディレクトリそのもののサイズになるみたい。

.
(この記事には続きがあります)


posted by けんじ at 11:57 | Comment(0) | Linuxation
2011年09月17日

cdrecord でCDをほいほい


NetBSD の iso を入手したので CD-RW に焼いてみることにした。せっかくなのでcdrecord。

デバイスファイルに cdrw@ というのがあるので、

cdrecord -v dev=/dev/cdrw blank=fast

とやって まずデータを消去。うまく消えたみたい。

続いて iso の書き込み。以前やったときに失敗しているので不安極まりないのだが、勘を頼りに

cdrecord -v dev=/dev/cdrw /.../....iso

を実行。うまく書き込めたかどうかは CD insert 後 のお楽しみ・・・


posted by けんじ at 06:11 | Comment(0) | Linuxation
2011年04月23日

How to rename Directory in Linux


It's the same way when you rename a file name.

mv old_directory_name new_directory_name


ディレクトリの名前を変更する - Linux コマンド

ディレクトリの名前を変更する場合のコマンドは、ファイル名を変更する場合と同じ。

mv 古い名前 新しい名前


posted by けんじ at 21:21 | Comment(0) | Linuxation
2011年01月03日

Android をやってみる... Debian でエラー


Debian での環境構築中にエラーが出た。

Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list.xml, reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

http://groups.google.com/group/android-developers/browse_thread/thread/63a44163a8d07cd9
を参考にして・・・

The file is ~/.android/androidtool.cfg

try to create it manually and add one line to it:
sdkman.force.http=true
(この記事には続きがあります)


posted by けんじ at 21:21 | Comment(0) | TrackBack(0) | Linuxation
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。