2011年11月29日火曜日

ABRT(クラッシュレポートツール)の停止(Fedora16)

[追記](20111130)
ABRTを停止しても,シャットダウンに時間が掛かる症状は直らず。
現在,調査中。(audit,audispd,sandbox)
https://bugzilla.redhat.com/show_bug.cgi?id=751181



前回,ABRTがおかしくてシャットダウンできないということを書きました。(Fedora16 abrtエラー
調べた結果[ここだよ]ABRTのサービスを停止することにしたら,
ちゃんと電源落ちるようになりました。
ABRTのアプリケーションをアップデートすることでは解決しませんでしたねw
ABRTはバグ検出・報告アプリなので別のアプリがバグってて変な症状になってるのかもしれませんが,仕方ありませんねww致命的なエラー(データ吹っ飛ぶとか)は起こってませんからねb

参考になるページが少なかったので,
いろいろ調べてABRTについてわかったことを書きます。

◆ABRT(Automated Bug Reporting Tool)とは?
Fedora12ぐらいから採用された自動バグ報告ツールです。
ABRTがアプリケーションのクラッシュを検出して,その情報をBugzillaに報告してくれるものです。
開発者がバグの追跡し、情報を素早く集めることを容易にしてくれる非常に便利なツールです。
SELinux AVCの監視ツールにも同様のレポートツールが追加されてるみたいです。 (自分はSELinuxも停止しているので,よくわかりませんが)
 
結論から言わせていただくと,
「ABRTもSELinuxも要らない」ってことです。不安定すぎるからね!
いちいちクラッシュが発生して不具合を起こってしまうと,仕事にならないから!

◆ABRTのエラーと停止方法
・ABRTのエラー
abrt[]:Got signal 15,exiting
plugin /usr/sbin/sedipatch terminated unexpectedly
・停止方法
>まず確認 (停止前)
[root@MasaFedora ~]# systemctl -t service(サービスの確認)
UNIT                       LOAD   ACTIVE SUB     JOB DESCRIPTION
abrt-ccpp.service          loaded active exited      Install ABRT coredump hook
abrt-oops.service          loaded active running     ABRT kernel log watcher
abrt-vmcore.service        loaded active exited      Harvest vmcores for ABRT
abrtd.service              loaded active running     ABRT Automated Bug Reporting Tool
accounts-daemon.service    loaded active running     Accounts Service
acpid.service              loaded active running     ACPI Event Daemon
atd.service                loaded active running     Job spooling tools
>停止(&自動起動停止)
[root@MasaFedora ~]# systemctl stop abrtd.service
[root@MasaFedora ~]# systemctl disable abrtd.service
[root@MasaFedora ~]# systemctl stop abrt-ccpp.service
[root@MasaFedora ~]# systemctl disable abrt-ccpp.service
[root@MasaFedora ~]# systemctl stop abrt-oops.service
[root@MasaFedora ~]# systemctl disable abrt-oops.service
[root@MasaFedora ~]# systemctl stop abrt-vmware.service
[root@MasaFedora ~]# systemctl disable abrt-vmware.service
>確認(停止後)
[root@MasaFedora ~]# systemctl -t service
UNIT                                 LOAD   ACTIVE SUB     JOB DESCRIPTION
accounts-daemon.service              loaded active running     Accounts Service
acpid.service                        loaded active running     ACPI Event Daemon
atd.service                          loaded active running     Job spooling tools
chronyd.service                      loaded active running     NTP client/server
console-kit-daemon.service           loaded active running     Console Manager

[参考]
RHEL 6発表
Fedora 12の改善点
Fedora 15リリース
Red Hat Bugzilla

2011年11月22日火曜日

Fedora16 abrtエラー

abrt[]:Got signal 15,exiting
plugin /usr/sbin/sedipatch terminated unexpectedly

シャットダウン・再起動時に,上のようなエラーが出て電源が落ちない現象に陥りました。

abrtの最新パッケージにアップデートすることで解決しました。(←今のところ,異常なし)

[root@]# yum update --enablerepo=updates-testing abrt-2.0.4.981-3.fc16.x86_64

電源が落ちないとか,怖すぎるわ。
毎度強制終了するときのドキドキ感はもう嫌だww


[追記](2011-11-26)
これでは直りませんでした.
よく観察してみたら,時間が経つと電源は落ちるみたいだねw

また今度,根本的な原因を調査して追記します.

2011年11月10日木曜日

Fedora 16 ログインエラー

早速,Fedora16(x86_64)をインストールしました。


色々インストールしていたら,
WineやらのSELinuxエラーが発生して,終いにはGUIでログインできなくなりました。


「ああっ!何かがおかしい。ログインできません。」




なので,SELinuxを無効化しました。

#vim /etc/sysconfig/selinux
SELINUX=enforcing
                      ↓
        SELINUX=disabled


そしてら,ログインエラー解決しました。
Fedora15は別のエラーだったけど,SELinuxはゴミすぎるわ!


メインOSとして使う予定なので,別のセキュリティソフト入れます〜。

2011年10月10日月曜日

/tmp(,/var/tmp)内のファイルを削除したら

/tmp,  /var/tmp内のファイル・ディレクトリを削除したら,デスクトップが起動しなくなった。(VNCも起動しない)

これがちゅんとした解決方法であるかはわかりませんが,解決したので記述します。

①/tmp/.X0-lockの削除。
rm -f /tmp/.X0-lock
②再起動
reboot 
③VNCについては,再インストール。



…直った♪
   これで,デスクトップは正常に起動するようになった。

yumキャッシュの削除(Linux)

yumのキャッシュを掃除していないと,
/var/cache/yum/x86_64/15/updates/packages の空きが不十分です
 と言われ,インストールが出来ません。


なので,以下のコマンドでキャッシュを掃除する。
yum clean packages
あるいは,
yum clean all


また,yumのキャッシュの場所は以下のファイルに記述されている。
 /etc/yum.conf

2011年7月25日月曜日

Eclipse3.7(Indigo) PDT エディターを開くことができません

PHPのプラットフォーム(PDT)で開発中に起こった、Eclipseのバグ。
PHPファイル操作中,Eclipse3.7(Indigo)がクラッシュした。

◆症状
 PHPファイルを開こうとすると,以下のエラーが表示される。
 「エディタが初期化できません。」あるいは、「エディターを開くことができません: Aborted cyclic load attempt for model with id: /WorkingShift/WorkingShift/top.php」

◆わかったこと
IndigoのPDTはバグがあり,どっかでクラッシュする。
一度クラッシュすると,以降そのWorkSpaceは使用できない。(Eclipse全般)
また,Indigoはまだたくさんバグ存在あって,またどこかでバグる可能性があり。
(…自分は再度同じ症状が出始め,Indigo断念。。。)

◆解決方法
WorkSpaceを新しく作り直す!!
Eclipse3.6(Helios)でPDTを利用。

◆注意
壊れたWorkSpaceはEclipse3.6(Helios)でも使えないよ。


◆参照
症状が同じサイト

2011年7月7日木曜日

Eclipse 実行可能なJar

統合開発環境Eclipseにおいて、実行可能なJarファイルの作成方法。
(Fedora15 x86_64)


1)Jarファイルにしたいプロジェクトを選択して、[右クリック]-[エクスポート]。


2)[Java]-[実行可能なJARファイル]を選択。

3)実行可能なJARファイル仕様の決定。

  • 起動構成:Mainのクラス(main関数のあるクラス)
  • エクスポート先:出力先
  • Library handing:ライブラリをJarファイルに含めるかどうか

 Labrary handingは以下を選択。
→[Copy required libraries into sub-folder next to the generated JAR]
:ライブラリはjarファイルの同じフォルダに置かれる。


4) 終了。

5)確認。(コンソールにて)
 [root@M16 RealTime]# ls
 EstimationRealtime.jar  EstimationRealtime_lib
:Jarファイルとライブラリ(EstimationRealtime_lib)

6)実行。
 [root@M16 RealTime]# java -jar EstimationRealtime.jar
 2011/07/07 16:28:14 org.apache.activemq.transport.failover.FailoverTransport doReconnect
 情報: Successfully connected to tcp://localhost:61616

2011年6月7日火曜日

IS03 (OS2.2)のタスク管理

先日IS03のOSをバージョンアップしました♪


あまりandroidに詳しくないので,バージョンアップした利点はよくわかりません.(笑)


欠点は,Task Killerアプリが動かなくなったことです.

色々なTask Killerアプリを入れましたが,起動アプリのタスクを削除してくれません。。

アプリを再インストールしたり,OSを初期化してもダメでした!!



電池スグ切れるし。。マジでやめて。。ww


IS03全員そうというわけではなさそうなので,ご了承をbb



色々試してみましたが,デフォルトの

「起動中アプリ一覧からの一括削除」


で我慢します!


最期のあがきだけど,

「Adw.launcherのランチャーアクションの”通知を開く/閉じる”を配置して,”起動中アプリ”にラクにアクセス出来るようにしとく!!」






”起動中アプリの一覧”に行くのに,ホームボタン長押しってどうなの??

デフォルトで「起動中アプリの一括削除」できるんなら,公開しとけ!!ショートカット作っとけ!!

ちょっと不誠実すぎる。。元々電池が持たないって分かってるんだからさっ。。


注意:Automatic Task Killer は,起動アプリ以外はタスク削除してくれますっbb

2011年4月22日金曜日

Linux:rootになれるユーザーの制限

suコマンドでrootになれるアカウントを制限するように設定する。

まず、/etc/login.defsファイルの編集が必要です。このファイルを開いたら、以下の1行を追加する。

SU_WHEEL_ONLY yes


次に/etc/groupファイルのwheelの行を修正する。ここでは、例としてrootになれるアカウント名を「user」に限定することとする。もし、user以外のアカウントにもrootになることを許可するのであれば、カンマで区切って列挙する。

wheel:x:10:root,user


さらに、上記の設定を有効にするため/etc/pam.d/suファイルに以下の行を追加する。

auth required /lib/security/pam_wheel.so use_uid group=wheel


これで、suコマンドでrootになれるアカウントはuserのみとなる。


ほぼ転載です.備忘録なのでご了承を.

第1回 インストール直後に絶対やるべき作業と設定

2011年3月15日火曜日

Fedora14 キー配置変更(Ctrl/CapsLock)

CtrlとCapsLockの位置を変更したい.(キーバインド変更)


Windowsなら,ChgKeyなどを使えばいい.


Linuxの場合についてのメモ.(Fedora14)

>[システム]->[設定]->[キーボードの設定]を選択

>[レイアウト]タブを選択

>そのなかの[オプション]を選択

>「Ctrl key postion」のリストの中から,「Swap Ctrl and CapsLock」にチェック

>[閉じる]->[閉じる]


で完了だ!

2011年2月18日金曜日

cd(カレントディレクトリ):ディレクトリ間の移動

◆ホームディレクトリへ移動

cd ~(チルダ)

◆直前のディレクトリへ移動

cd -(ハイフン)

CygwinでProgram Filesに行けないとき

答えは簡単♪

エスケープ文字?が原因!!

$cd Program\ Files

これでよし!!

2011年1月21日金曜日

初めてのNASの認証

OSをインストールしてNASに初めて接続するとき,認証できない・・・


なので,2つのことを設定.

原因:共有フォルダへアクセス時の認証方式のせい

対策:セキュリティポリシーを変更

1.[コントロールパネル] - [管理ツール] - [ローカルセキュリティポリシー] - [ローカルポリシー] - [セキュリティオプション]を開く.

2.「ネットワークセキュリティ:LAN Manager認証レベル」の欄を,「NTLM応答のみ送信する」に変更.



参考:
NASの認証

2010年12月31日金曜日

Fedora14でrootログイン

忘れないように・・

Fedora14はデフォルトでは、GDM(GNOME Display Manager)から root でログインできない.
→デスクトップからログイン出来ないんだよね・・

なので,2つのファイルを書き換える.

・ /etc/pam.d/gdm
・ /etc/pam.d/gdm-password

次の1文をコメントアウト


auth required pam_succeed_if.so user != root quiet
#auth required pam_succeed_if.so user != root quiet
あとは,rebootして終了.
参考:
Fedora 14 で root でログイン

Linuxのコマンド(備忘録)

◆ファイル検索
>find / -name aaa.txt


◆ディレクトリごと削除
>rm -r aaa
これだと,ファイル一つずつ許可しなきゃいけないので
>rm -rf aaa
これだと,一発♪

◆ファイアウォール
>iptables -I INPUT -p tcp -m tcp --dport ポート番号/サービス名 ACCEPT
>service iptables save

◆ファイアウォール設定の裏技(自分的にw)
ファイアウォールの設定ファイルを直に書き換え
>vim /etc/sysconfig/iptables
ファイルを書き換える.
>service iptables restart
(ついでに,>service iptables save)

管理者(Postgres)のパスワード忘れたとき

Postgresqlで管理者(Postgres)のPasswordを忘れたとき,


1)パスワードなしでアクセスできるようにする
>vim /var/lib/pgsql/data/pg_hba.conf

 local all all                   md5
 host all all 127.0.0.1/32  md5 
 ↓
 local all all                   trust
 host all all 127.0.0.1/32  trust

に変更.他にhostも設定できる.(hostはTCP/IPで接続している場合(SSH))


>service postgresql restart
再起動.

2)パスワードの変更
パスワードなしで,ユーザ(postgres)でpostgresqlに接続.そして,パスワード変更.

>su -
>su - postgres
-bash-4.1$psql -U postgres
postgres# ALTER Role postgres PASSWORD '新パスワード';
postgres# \q
-bash-4.1$exit



==終了==

2010年12月27日月曜日

SSH 鍵認証接続の注意点

OS:fedora14

SSHでリモート接続するときの注意点

◆鍵のコピー
TeraTermでSSH鍵生成した公開鍵をサーバに登録するとき,
公開鍵の最後の改行は削除しておくこと!!


◆権限の付加
他人から見られないようにするために,フォルダ・ファイルに権限を付加する.


>chmod 755 ~/.ssh
>chmod 644 ~/.ssh/authorized_keys


□工程
>mkdir ~/.ssh
>vim ~/.ssh/authorized_keys
鍵のコピペ
>chmod 755 ~/.ssh
>chmod 644 ~/.ssh/authorized_keys
権限の付加
>exit
ログアウト

2010年12月26日日曜日

ntp 設定 (CentOS 5.0)

ntpの設定を行った時の備忘録

ntpで時刻同期させるためのサービスがntpdです.
そして,同期させるためには2つの方法があるって.

◆1.[例:ntpdate ntp.nict.jp]を定期的に実行(cron)
◆2.ntpdに勝手にやってもらう(ntpdデーモン)

1.はコレ見て!
技術メモ:白黒サーバーインストール記録


今回は,2.を行ったよ.

やり方は,2つのサイトを参考にしました.

CentOSにntpサーバで時刻同期設定

CentOS5.0でntpを使用して時刻を合わせる


要点は,下の①,②,③ぐらいです.(①から⑤まで順番にやってね)

①:ntpdate ntp.nict.jp(設定変更する前に,時刻同期させておく)
 
>ntpdate ntp.nict.jp

②:vim /etc/ntp.conf(ntpサーバを変更する)
/etc/ntp.conf 内 (↓)

server 0.centos.pool.ntp.org

server -4 ntp.nict.jp
 
restrict 0.centos.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
↓「コメントアウト」
#restrict 0.centos.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery

③:vim /etc/sysconfig/ntpd(ハードウェアクロックも同期させる)

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no


SYNC_HWCLOCK=yes
 
④service ntpd restart(再起動)
⑤chkconfig ntpd on (自動起動(PCを起動するときに自動で立ち上がる))
 
最後に,次はこいつをntpサーバにして,他のローカルPCを時刻同期させよう♪

2010年12月2日木曜日

気象庁Webページをスクレイピング

研究に利用しようと思って,アメダス情報をゲットしたかったんですね、phpで♪


天気情報をWebサービス(rss,api)で提供しているのは,
1)Yahoo!天気
2)goo
3)google
4)livedoor weather hacks
5)ひとくち予報 in Feed
とかがあるらしい.
今回はアメダスデータが欲しかったので,5)はなし.


◆RSSでゲットしよう♪
RSSを提供している,4)のLivedoorを使ってみたよb

http://weather.livedoor.com/amedas/point/50456.html

のデータが欲しいとーb

このRSSをゲットしようと思ったら、、

サイトのテーブルは1時間ごとに更新されるのに、RSSは6時間一度しか更新されない。
このRSSでゲットできるデータは,0・6・12・18時のいずれかでした!

6時間ごとという,大したデータが取れないので,(実地で検証www)

【実装方法】
php: simplexml(),linux:cron
simplexml()はxmlファイルを配列ぶち込んでくれる関数.
欠点があって,要素にアクセスするときパスを指定しないといけないことだね.


◆サイトのHTMLファイルからゲットしよう♪(simplexml()を使って♪)
第二の方法だよねb
HTMLファイルからゲットするんなら,もっと色々なデータを提供している気象庁(http://www.jma.go.jp/jma/index.html)のサイトからゲットしようと♪

<おぉ♪簡単じゃね?前作ったプログラムでいいんじゃね?simplexml()で>

が!失敗!!
htmlはxmlじゃないんですねー!!
http://www.atmarkit.co.jp/fxml/askxmlexpert/022xhtml/22xhtml.html
使えない文字とか,色々htmlでは使われていたり。。
俗に言う,XHTMLはhtmlファイルをxmlみたいにちゃんと整形式にしたものだってb

ほうほう♪そういうことだったのか!HTMLとXMLの違いを実地で体験ww


◆HTMLファイルのスクレイピング
第三の方法だよねb
色んな方法があるみたいだけど,今回はscrape_func.phpっていうライブラリを使いました.

スクレイピングは,Webサイトから必要な情報を切り取ることだって.
やってることは,簡単にはマッチした部分を取ってくるって感じ♪


実装したもの(↓)は,ムダにループ回ってるよww
最新の一件のアメダスデータのみDBに格納してるんだけど,ループは24時間分www

そして,Linuxのcronでスケジューリング♪♪

データも1時間ごとのリアルタイムデータが取れるようになったし,満足満足♪♪

【実行結果】




【実装したもの】
<?php
/* スクレーピング関数群のインクルード */
include( "scrape_func.php" );

/* getURL()関数を使用して、ページの生データを取得する。 */
$_rawData = getURL( "http://www.jma.go.jp/jp/amedas_h/today-50456.html?groupCode=35&areaCode=000" );

/* 生データをUTF-8に変換する。 */
//$_rawData = mb_convert_encoding($_rawData, "UTF-8", "auto");

/* 解析しやすいよう、生データを整理する。 */
$_rawData = cleanString( $_rawData );

//echo $_rawData;
/* 次は若干ややこしい。 必要な項目の開始部分と終了部分は、事前に
   HTMLから確認してある。 こういったものを利用して必要なデータを取得
   する。 */

$_rawData = getBlock( "<td class=\"time left\">","</tr> </table>", $_rawData,false );

/* これで箇条書きに必要な特定データが入手できた。
   ここでは項目を配列化した後、繰り返しで処理を行っている。 */
$_rawData = explode( "</tr>", $_rawData );    //1時間毎に分割



//現在の時刻
$date=date( "Y-m-d H:", time() )."00:00";
//echo $date;
//cronする時刻のみのデータをとってくれば良い。

//取得するデータの時刻を求める。
$what=date( "H", time() );
//echo "what:".$what;
//if($which==1)echo "OK!";        //01 =>1
$which=(int)$what;
if($which==0)$which=24;



$conn = pg_connect("データベースの接続");
if (!$conn) {
  echo "An error occured.\n";
  fwrite($handle,"connection error!\n");
  exit;
}
pg_set_client_encoding("sjis");


//echo "<hr>";
$now=0;            //時刻ではない
/* 繰り返しを行いながら、個々の項目を解析する。 */
foreach( $_rawData as $_rawBlock ) {
   //初期化
   //$time=null;
   $temp=null;
   $rainfall=null;
   $wind_direction=null;
   $wind_velocity=null;
   $sunlight=null;
   $moisture=null;
   $pressure=null;
  
   //now=0:$which=1        //ひとつずれてる
   if($now==($which)){
     $_rawBlock = explode( "</td>", $_rawBlock );//8つのデータを配列に格納...余計に1つ要素が出る..
     $str="";
     $null_count=0;
     $num_element=count($_rawBlock)-1;
     //echo "count:".count($_rawBlock);
     for($j=0;$j<$num_element;$j++){
        $_rawBlock[$j]=strip_tags($_rawBlock[$j]);    //余計なタグを除去
        $_rawBlock[$j] = trim( $_rawBlock[$j] );    //空白を除去
    //echo "j:".$j."->".$_rawBlock[$j].",";
    if(!strcmp($_rawBlock[$j],"&nbsp;")){        //"&nbsp;"=空白
       $_rawBlock[$j]=0;        //"&nbsp;"のとき、0を代入
       $null_count++;
    }
    if($j==0){
       //時間
       $str.="'".$date."',";
       //$time=$_rawBlock[$j];
       //if($time==24)$time=0;    //24時 => 0時
       //$str.=$time.",";
    }else if($j==1){
       //気温(℃)
       $temp=$_rawBlock[$j];
       $str.=$temp.",";
    }else if($j==2){
       //降水量(mm)
       $rainfall=$_rawBlock[$j];
       $str.=$rainfall.",";
    }else if($j==3){
       //風の向き(16方位)
       $wind_direction=$_rawBlock[$j];
       $str.="'".$wind_direction."',";
    }else if($j==4){
       //風の強さ(m/s)
       $wind_velocity=$_rawBlock[$j];
       $str.=$wind_velocity.",";
    }else if($j==5){
       //日照時間(hour)
       $sunlight=$_rawBlock[$j];
       $str.=$sunlight.",";
    }else if($j==6){
       //湿度(%)...少数表記
       $moisture=(double)$_rawBlock[$j];
       $moisture/=100;
       $str.=$moisture.",";
    }else if($j==7){
       //気圧(hPa)
       $pressure=$_rawBlock[$j];
       $str.=$pressure;
    }
     }
     if($null_count==$num_element-1){
         //echo "null!!";
     }
     //echo "=>".$str;
     //echo "<hr>";
    
     //DBへの登録...あるデータは無視
     $sql="insert into weather(time,temp,rainfall,wind_direction,wind_velocity,sunlight,moisture,air_pressure) VALUES (".$str.");";
     //echo "sql:".$sql."<br />";
     $result_flag = pg_query($sql);
     if (!$result_flag) {
     //fwrite($handle,"insert error!\n");
     die('INSERT fault'.pg_last_error());
     }
     pg_close($conn);        //DB.close();
   }
   $now++;
}
?>

【参考】
http://d.hatena.ne.jp/steel-plate/20080417/1208445174

2010年10月21日木曜日

サーバー公開(ダイナミックDNSで)

サーバーを公開しました.そこで必要な項目が2つあるよ.
1つはサーバのIPを固定にすること,2つ目はルータのNAT(Network Address Translation)の設定です.


◆サーバのIPを固定にするには
1)DHCPを停止(サーバPC)
2)固定IPを設定(サーバPC)

Linuxで固定IPにする方法は色々なサイトで見れるので省略.(下のサイトを参照して)
http://fedorasrv.com/fedora13.shtml
の【fedoraのネットワーク設定】

設定するものは,プライベートネットワークでサーバを固定するためのもの.
サーバのIP(プライベートIP),ルータのIP(LAN側と)