Quantcast
Channel: IT忘備録・メモ書きと日記
Viewing all 146 articles
Browse latest View live

PR: 私たちの暮らしを守る 自衛隊の活動-政府ネットTV

$
0
0
今回は、「国際平和協力活動」や「海賊対処」などの活動についてご紹介します!

wget,crul ~  コマンド

新規ソフトウェアのインストールのリポジトリを削除

$
0
0
eclipseで新規ソフトウェアをインストールするために、リポジトリのURLを追加するのはいいのだkれど、少しURLを変更したい場合に重複とかいって変更や追加ができない。で、一旦削除しようとしても、どこで削除したらいいかも解らん・・・
で、キーワードのURLでgrepをかけたら、下の二つのファイルがヒットして、直接削除したらうまくいった・・・

C:\pleiades\eclipse\p2\org.eclipse.equinox.p2.engine\profileRegistry\epp.package.jee.profile\.data\.settings\org.eclipse.equinox.p2.artifact.repository.prefs(663,61)  [SJIS]: repositories/http\:__eclipse.seasar.org_update_3.2/nickname=seasar_org_3_2
C:\pleiades\eclipse\p2\org.eclipse.equinox.p2.engine\profileRegistry\epp.package.jee.profile\.data\.settings\org.eclipse.equinox.p2.metadata.repository.prefs(579,61)  [SJIS]: repositories/http\:__eclipse.seasar.org_update_3.2/nickname=seasar_org_3_2

VirutualBox

PR: 9の日はQUICPayの日!キャンペーン実施中!

shell script(シェルスクリプト)メモ

$
0
0

shellスクリプトメモ

■コマンド名だけで実行できるようにする
例えば、hogeというスクリプトを作って実行権限を付与する。この状態だとカレントディレクトリで./hogeで実行できる。すべてのディレクトリにおいて、hogeで実行できるようにしたい。

とりあえずの方針としては、環境変数のPATHに/bin/myshディレクトリを追加してそこの自作してシェルをおくようにする。

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

$ export PATH="${PATH}:/usr/mysh"

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/mysh

$mv hoge /usr/mysh/

$hoge

実行できた。ただ、これだとターミナルをログアウトして再ログインしたときに実行できなくなってしまうので、~/.bash_profileあたりのファイルに「export PATH="${PATH}:/usr/mysh"」の一行を書く。

refs
bashシェルスクリプト入門~シェルスクリプトのいろは
環境変数を書き込むの に.bash_profileとかなにを使えばいいか迷う

ERROR: JDWP Transport ~ mac,eclipseでデバッグ実行

$
0
0

macのeclipseで通常の実行は出来るけど、デバッグ実行しようとすると下のエラーが発生した。

ERROR: transport error 202: recv failed during handshake: Connection reset by peer

ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)

JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750]

FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)

関係ないと思いつつ、環境変数のJAVA_HOMEを設定し、PATHに$JAVA_HOME/binを追加してみたけど、やっぱり解決しない。

refs
eclipse debug/faq i can run a program but not debug it???

[2013/11/26 add]

ネットで色々調べてみたけどやっぱり解決できない。ただ、macにeclipseをインストールするときに最初にkepler単体を入れて、その後にpleiadesを入れた訳だけと、kepler単体のeclipseを起動してみたら、デバッグモードでも実行できた…

refs
mac memo eclipse

[2013/11/26 add 2]
再度、pleiadesのplugins,dropins,featuresディレクトリをkeplarのeclipseにコピーしたらデバッグもできた。ただ、英語のまま

本「hadoop徹底入門」キーワード

$
0
0
hadoopの入門書「hadoop徹底入門」のキーワード


Hadoop徹底入門 第2版 オープンソース分散処理環境の構築/翔泳社
¥3,990
Amazon.co.jp

レスポンスタイム(レイテンシ,latency)
スケーラビリティ(拡張性)、スケールアップ、スケールアウト、スループット
Hadoopマスタサーバ(JobTracker,NameNode)、Hadoopスレーブサーバ(TaskTracker,DateNode)
HDFS:分散ファイルシステム、MapReduce:クラスタ環境で並列分散処理、Hive、Pig、Sqoop,HBase,ZooKeeper
IAサーバ、1U、2U、ラック
透過性、拡張性、HA構成(冗長化)、多重度、メタ管理、インデックス
シーケンシャル(連続的)、Map,Shuffle,Reduce
運用事例、Posデータ解析によるフィードバック、webアクセスログ解析、全文検索転置インデックス、統計的機械翻訳、フォーマット・画像変換、機械学習:金融市場の同席分析、遺伝子解析、気象予測、渋滞予想、音声認識、文字認識のパターン認識
不正要求のフィルタリング()、重複除去
形態素解析、CDH(Clouderas distribution in cluding Apache Hadoop)
ローカルモード、疑似分散モード、完全分散モード


javaチューニング、gcのメモ(Xms,Xmx)

awkこまんど、

PR: スマホ・タブレットが何倍も楽しくなる「ポケドラ」

$
0
0
アイオーの”ポケドラ”なら撮ったその場で動画や写真を交換!ルーターや充電機能も

大容量hiberfil.sysとpagefile.sysファイル~windows7

$
0
0

使っているノートPCの容量が残り10Gを切った。du -hs *でディレクトリ毎の容量を調べたところ、cドライブ直下にhiberfil.sysが6G、pagefile.sysが8G・・・なんだこのファイルは。ちなみにexplorerでは標示されてない。隠しファイル、ディレクトリを表示に設定したのに。で、調べた見たら、コンパネ⇒フォルダオプション⇒表示タブ⇒保護されたオペレーティングシステムファイルを表示しない(推奨)のチェックも外さなければ見れないことを初めて知った・・・windows・・・

refs:windows7tips:hiberfil.sysとpagefile.sysを削除する

で、上の参考サイトを見て、hiberfil.sysだけ削除。
powercfg /hibernate off

ssl/tls

$
0
0

SSL(Secure Socket Layer)について。

refs book

できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応.../インプレスジャパン
¥2,625
Amazon.co.jp




sslの新しいバージョンはTLS(Transport layer security)という名前で標準化されたため、SSL/TLSといわれる事もある。単にSSLといえば、SSL/TLSの事を指す。

■機能
相互認証。CA(Certificate Authoriy 認証局)を介す。相互認証だけど、サーバ側だけ証明する事が多い。
完全性。改ざんされていないか?電子署名。暗号化で盗聴防止。


OpenSSL。SSLを利用するための必要なソフトウェア。
mod_ssl。OpenSSLを使ってApacheをSSLに対応させるモジュール。

mod_sslは、OpenSSLによりApacheでhttpsを使えるようにするモジュール。mod_sslを使う事でOpenSSLとApacheを連携させることができる。

■CA認証のしくみ

SSL対応のサイトにするときに証明書をCAに発行してもらう。利用者がサイトにアクセスしたら、サイトは証明書をブラウザに返す。ブラウザは自身が持っているCAの情報をもとに、送られた情報が正しいかどうかを確認する。初めてのリクエストでブラウザに登録されていないCAが発行した証明書の場合、ユーザにその証明書を信用するかどうかの確認ダイアログを出す。

このため、まずはCAに自分のサイトを登録し、本物のサイトである事を証明してもらう必要がある。

webサイトの鍵を自分で証明する自己署名という方法がある、自己署名でテスト用の小名称を作れば、CAへの登録をせずにSSL対応のサイトが作れる。が、自己署名ではサーバの認証ができないため、本格運用のときはCAへの登録が必要。

*ってことは、例えば社内で使うようなサイトで暗号化だけが目的なサイトなら自己署名のssl,httpsで十分?


■本格運用

信頼できるサイトにするためにCAに有料で証明書を発行してもらう。主なCAは、ベリサイン、グローバルサイン、サイバートラスト。他にも色々あるけど、違いはただ値段。あとは対応しているブラウザ。マイナーのブラウザには対応していないCaもある。

手順としては、CSR(certificate signing request)ファイルをcaに送る。webサイトの鍵は自己署名で使ったテスト用の鍵でもおっけ。証明書が送られてくる。apacheの場合、この証明書をcsrファイルと同じディレクトリにおき、ssl.confのSSLCertificateFileという項目に証明書のファイル名を設定する。


■自己署名

自己署名を自分のmacでやってみた。結論から言うと、試してみたけどできなかった・・・

apache2 $ pwd
/etc/apache2
apache2 $ ls
extra        magic        original    users
httpd.conf    mime.types    other

・webサーバの鍵を作る
apache2 $ sudo openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
....++++++
..................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
apache2 $

server.keyファイルができた。

apache2 $ ls
extra        magic        original    server.key
httpd.conf    mime.types    other        users

・証明書をつくる。国、location、ホストとかは適当に入力。

apache2 $ sudo openssl req -new -days 3000 -key server.key -out server.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:tokyo-dayo
Locality Name (eg, city) []:shibuya-dayo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:hoge company
Organizational Unit Name (eg, section) []:hogehoge unit selection
Common Name (e.g. server FQDN or YOUR name) []:www.example.com
Email Address []:hoge@hoge.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

・server.csrができた。

apache2 $ ls
extra        magic        original    server.csr    users
httpd.conf    mime.types    other        server.key
apache2 $

・テスト用に自己署名する

apache2 $ sudo openssl x509 -req -signkey server.key -days 3000 -in server.csr -out server.crt
Signature ok
subject=/C=JP/ST=tokyo-dayo/L=shibuya-dayo/O=hoge company/OU=hogehoge unit selection/CN=www.example.com/emailAddress=hoge@hoge.com
Getting Private key
Enter pass phrase for server.key:

・このままだとapacheを起動するとパスフレーズを要求されるので、鍵のパスフレーズを解除する。

apache2 $ sudo openssl rsa -in server.key.bak -out server.key
Enter pass phrase for server.key.bak:
writing RSA key
apache2 $ ls


・これでapacheを再起動すれば、httpsでリクエストできるはずなのに、今まで通りhttpでしかアクセスできなかった。なぜだ・・・/etc/apache2/extra/httpd-ssl.conf ファイルの中身をみてもデフォルトのままでいけるはずなのに。ここでギブ


refs
鍵交換方式によりssl接続

ps,killコマンド

$
0
0

psコマンドとkillコマンドについて

$ps aux
a:自分以外のユーザプロセスを表示する
u:ユーザ名などの詳細を表示する
x:デーモンなどのプロセスを表示する

work $ ps aux
USER              PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
hogeuser             1551  15.4  4.4  1607400 368596   ??  S    金03AM  68:38.48 /Applications/Google
_coreaudiod       284   3.1  0.1  2522888   9340   ??  Ss   木12AM  32:38.11 /usr/sbin/coreaudiod
hogeuser              538   1.9  1.3  3088532 105128   ??  S    木02AM  99:58.00 /Applications/Firefox
hogeuser             1537   1.5  2.5  1669584 208284   ??  S    金03AM  32:08.64 /Applications/Google
hogeuser             2766   1.1  2.6  1119788 220360   ??  S     2:22PM   2:42.90 /Applications/Google
hogeuser             1553   1.0  0.7   969092  62888   ??  S    金03AM   9:14.19 /Applications/Google
hogeuser              276   0.7  9.7  5241788 811384   ??  S    木12AM  77:13.25 /Applications/Firefox
hogeuser              275   0.2  1.0  2819844  85276   ??  R    木12AM   2:05.99 /Applications/Utiliti
hogeuser             1546   0.1  2.9  1247364 240532   ??  S    金03AM  11:10.63 /Applications/Google
hogeuser              320   0.1  0.8  3855552  69608   ??  S    木12AM   1:23.96 /System/Library/Input
hogeuser             2918   0.0  0.5   954624  44968   ??  S     3:23PM   0:01.39 /Applications/Google
_www             2917   0.0  0.0  2463684    740   ??  S     3:23PM   0:00.00 /usr/sbin/httpd -D FO
_www             2916   0.0  0.0  2473924    736   ??  S     3:23PM   0:00.00 /usr/sbin/httpd -D FO
_www             2915   0.0  0.0  2463684    924   ??  S     3:23PM   0:00.00 /usr/sbin/httpd -D FO


USER:実行しているユーザ名
PIDプロセス番号
STAT:プロセスの状態
COMMAND:コマンドの名前

・STATについて
S:スリープ
D:I/Oまち
R:CPUまち
T:停止中
Z:終了中

STATや%CPU,%MEMあたりを観察して、常にSTATがRの状態だったり、CPUの利用率が99%になっていた、メモリ使用率が増大している場合、プロセスが暴走している可能性がある。そんなプロセスを強制終了したい場合、PID欄にあるプロセス番号を指定して「kill プロセス番号」のようにkillコマンドを実行する。それで終了しない場合、「kill -KILL プロセス番号」で強制終了する。

rubyとjava

$
0
0

ruby,javaの言語間の違い、同機能の別名とか、混乱した事につて。

■破壊的メソッド、mutable,immutable
rubyには破壊的メソッドという者がある。例えばStringオブジェクトの場合、メソッド名に!をつけると破壊的メソッド。破壊的メソッドの場合、Stringオブジェクトの中身が変わる。mutableね。

ただ、Object#freezeを呼び出せば、破壊的メソッドを使用不可のfreeze状態にできる。freeze状態かどうかは#frozen?で確認できる。

■インスタンス変数、attr_accessor: hoge , setter,getter
rubyのインスタンス変数は、外から参照、更新する事はできない。必ずあくせさが必要。javaのpublicフィールドとは違う。
attr_accessorにインスタンス変数の値を渡せば、アクセサ(setter,getter)が自動的に定義される。hogeの場合、hoge=がセッタ、hogeがゲッタ。attr_reader,attr_writerで片方だけの定義もできる。attr_accessor:hoge1, hoge2のように複数インスタンス変数を指定できる。

■インスタンス変数、@、クラス変数、@@
rubyのインスタンス変数は@、暮らす変数は@@を前につける

■クラスメソッド、staticメソッド、self
rubyでクラスメソッドを定義する場合、メソッドの定義でメソッド名に前にself.をつける。また、クラスメソッドを複数定義したい場合、class << self ~ endの~にまとめてかける。

■メソッド呼び出し、変数、定数アクセス
rubyは.(ドット)だけじゃなく、::でもおっけ。

■コンストラクタ,initialize

■呼びだし制限、private,protected,public
rubyの呼び出し制限の書き方は、private :method_name  public:method_name2
method_name,method_name2は省略してまとめてかく事もできる。
呼び出し制限を書かない場合、defで定義したメソッドはpublicになる。
javaと比べてprotectedだけ意味が異なる。rubyのprotectedは、そのメソッドが定義された同じ暮らす、またはそのサブクラスしかから呼び出せない。
initialize,トップレベルで定義したメソッドはprivate。

■特異メソッド
rubyにはクラスでメソッドを定義できるだけじゃなくて、特定のオブジェクトにメソッドが定義できる。これを特異メソッドという。特異メソッドは、クラスで定義したメソッドをオーバーライドできる。

■モジュール
javaは完全なオブジェクト指向言語だけど、rubyは違い。rubyにはクラスだけじゃなく、モジュールというものがある。モジュールはnewしてオブジェクトを作成できない。トップレベルやクラス内でモジュールをincludeし、オブジェクト名.メソッド名で呼び出す。cのライブラリみたいなもの。ちなみにクラスからincludeする事をmix-inと言うらしい。
あと継承はできない。名前空間を作れる。名前空間が作れるってことで、モジュール内でモジュールやクラスの定義はできる。
あとextendを使って、オブジェクトの特異メソッドに取り込む事も出来る。クラス内でincludeでmoduleをmix-inせず、moduleをextendsするとモジュールのメソッドをクラスメソッドとして取り込む事ができる。このあたりはjavaと比べて自由すね・・・

■import,require,autoload
javaのimportに対する物は、rubyのrequireやatuoload。

■継承ツリー,Object
irb(main):027:0* class MyClass
irb(main):028:1> end
irb(main):035:0> MyClass.ancestors
=> [MyClass, Object, Math, Kernel, BasicObject]
irb(main):036:0> MyClass.superclass
=> Object

irb(main):039:0* String.superclass
=> Object
irb(main):040:0> String.ancestors
=> [String, Comparable, Object, Math, Kernel, BasicObject]

■オブジェクトのコピー
Object#dup,Object#cloneは浅いコピー(shallow copy)


覚えられないよく使うlinuxコマンド

$
0
0

$ whatis ls
$ whereis ls
$ wc hoge.txt
$ sort
$ uniq
$ tee
$ type ls
ls is hashed (/bin/ls)
$ man -k hogeword
$ ls -F
置換
$ tr a-z A-Z
hoge
HOGE
$ dmesg
$ man bash
$ man csh
$ man zsh
これでシェルの説明を見れたり、それぞれのシェルのコマンド一覧を見れるのは目から鱗だった。
$ dig www.yahoo.co.jp
$ dirname
$ set , env, printenv
$ useradd, userdel, passwd,groupadd,usermod,groups,chgrp,chmod
$ . hoge.sh
hoge.shをカレントシェルで実行
$ :
ルコマンド。必ず実行終了ステータス0を返す。while分の条件文に使うと無限ループになる。または何かコマンドを書かなければいけないけど、何もしたくない場合とか。
$ eval
$ uptime $ w $ top
CPUの負荷を調べる
$ sudo du -xS / | sort -n開始ディレクトリ(/)以下のディレクトリをサイズの小さいディレクトリ順に表示

PR: 月々980円から始められるスマホのパケット代

linux,macのログ関連(/var/log/, logger)

$
0
0

linux,macのログ関連のメモ

/var/log/ディレクトリ以下にログファイルが出力される。

macの場合、loggerコマンドは/var/log/system.logに出力される。linuxの場合、/var/log/messages。

・Linuxのログ
/var/log/boot.log デーモンの起動や終了のログ
/var/log/cron cronのログ
/var/log/dmesg カーネルのメッセージ
/var/log/messages bind,カーネルなどのシステム一般のログ
/var/log/secure ログイン記録、TCP Wrapper、suのログ
/var/log/yum.log yumのインストールログ

syslogdを使っているなら、rsyslog.confに出力パスが設定されている。

・サーバログ
/var/log/maillog postfix,devecot
/var/log/samba/log. smb
/var/log/httpd/access_log apacheのアクセスログ
/var/log/httpd/error_log
/var/log/mysqld.log mysql

logrotate,logwatch

linuxのログはrsyslogdによって記録される。rsyslogdの設定ファイルは/etc/rsyslog.conf。サーバの種類やログの深刻度によって、ログの出力先を振り分けている。ただ、apache,sambaなどはアプリ独自にログ出力している。

yum、yumのリポジトリepel,remiの導入

$
0
0

yumコマンドについて

$ yum -y install httpd
パッケージをインストール。全てyes。
$ yum remove
パッケージをアンインストール。
$ yum update
$ yum list
インストール可能なパッケージリストを一覧表示。
$ yum list installed
インストール済みのパッケージリストを一覧表示。例えば、apache(httpd)がインストール済みかどうかを確認したい場合は、「yum list installed | grep http」
$ yum search http
指定したキーワードでパッケージを検索する。
$ yum info php
パッケージの詳細情報を表示する。バージョン情報なども解る。
$ yum --enablerepo=epel,remi,rpmforge info fio
リポジトリを指定してパッケージの情報を表示する。
$ sudo yum --enablerepo=epel,remi,rpmforge install fio
リポジトリを指定してパッケージをインストールする。
$ ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo

■epel,remi
yum infoでみたパッケージが古い場合、yumのリポジトリを追加する。リポジトリで有名な物にはepel,remiがある。remiを使うためにはepelが必要

refs:
epel,remiリポジトリを導入しよう
・cenosにyumのリポジトリを追加

centos にepel,remiのリポジトリを追加。パッケージのバージョンが古いときなどの解決策になるかも。epel,remiをwgetで落としてきて、 /etc/yum.repos.d/epel.repo,/etc/yum.repos.d/remi.repoファイルを新規作成して編集。

$ ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo  epel.repo  remi.repo

リポジトリを指定して、fioパッケージの情報を確認。これであればおっけ。
$ yum --enablerepo=epel,remi,rpmforge info fio

ただし、インストールするときも--enablerepoが必要。設定かえれば必要なくなると思うけど・・
$ sudo yum --enablerepo=epel,remi,rpmforge install fio


インフラ関連めも

$
0
0

インフラ関連のメモ書き。

refs
必要なストレージを見極めるには。
wiki帯域幅

■帯域幅と通信速度の関係について
・・・
まぁ道路の幅が太ければ転送容量は増える事が感覚的にわかる。
refs:周波数帯域と伝送速度の関係性について

■用語
帯域幅(bandwidth):MB/sec。秒間の転送量。
IOPS:秒間のI/Oアクセス回数
bps(bit per second)
ベストエフォート
スケールアウト、スケールアップ
フェイルオーバー
RAIO
ストライピング

■コマンド
$free -m
メモリ
$df -h
ディスク容量
$ mount -v
$ fdisk -l

■ツール
fio
refs:fioを用いたディスクI/Oのパフォーマンスの測定

Viewing all 146 articles
Browse latest View live