2012年3月30日金曜日

Ubuntu11.10のsnmp設定

■まずはインストール
apt-get update
apt-get install snmpd
(aptitudeでも可)

■設定
vi /etc/snmp/snmpd.conf
で以下の部分を編集

agentAddress  udp:127.0.0.1:161

agentAddress  udp:0.0.0.0:161

service snmpd start

どうやらデフォルトだとローカルのみでしか動作しないようです。
(ローカルホストからじゃないとsnmpwalkできないということ)
リモートから行う需要が高いsnmpを考えると上記の設定は必須のような気がします

お試しあれ

2012年3月29日木曜日

localhostに対してsnmpwalkを実行するコマンド

snmpwalk -v 1 -c public yoshi3 system

■注意事項
・ローカルのホスト名が「yoshi3」になってます
必要に応じて「yoshi3」の部分をlocalhostなりに書き換えてください
・snmpをインストールする必要があります
(yum -y install net-snmp)
・あくまでもローカルに対しての実行になるので、リモートからアクセスした場合にはiptablesやWAN側のルータも設定する必要があります

P.S
MIB情報の詳細は以下が参考になりそうです
http://www.itmedia.co.jp/enterprise/articles/0705/21/news015.html

P.S
snmpwalk -OnQ -v 2c -c public -t 2 -r 1 yoshi3:161 .1.3.6.1.4.1.2021.4.15.0
でもできます
上記で「No more variables left in this MIB View (It is past the end of the MIB tree)」のエラーが出た時には以下を参照してみてください
http://kakakikikeke.blogspot.com/2012/08/no-more-variables-left-in-this-mib-view.html



2012年3月27日火曜日

【10秒でできる】sshでノーパスログインする設定方法

cd
ssh-keygen -t dsa
⇒入力を求めら得るがすべてエンターのみで回避
cd .ssh/
cat id_dsa.pub >> authorized_keys
ssh yoshi3

でノンパスでローカルホストにログインできます。
ssh-keygenで公開鍵を作ったユーザがノンパスログインできるようになるので、すべてのユーザでノンパス設定したい場合はすべてのユーザで上記を行ってください
リーモトホストにノンパスログインしたい場合はリモートホストのauthorized_keysに上書きします
(適当にファイル転送をして)
SSHのバージョンが1をサポートしているときは
「ssh-keygen -t rsa」
で公開鍵を作成しましょう
また当たり前ですが、ssh-keygentができないとダメなのでできない場合はopensslをyumしましょう
簡単ですね。お試しあれ


P.S 権限について

  • .sshフォルダの権限は700である必要がある(ログイン先のフォルダ)
  • authorized_keysの権限は600である必要がある(ログイン先のファイル)

2012年3月23日金曜日

WiMAX Uroad-8000 が持っている機能

いまどきのルータとしての機能は全部持っているようです
まぁ当たり前ですかね。
以下はソフトウェアレベルで持ってる機能を洗い出してみました。

ファイアウォール
アクセス元IP制限、ポートフィルタリング機能はありそうです。(未検証)
これもおそらくですが、Incomingしか設定はできないようです。
(Outgoingなんて使わないかwww)
あと、DMZも設定できます。大事なデータを保持しているDBサーバを
WiMAX回線で構築している人には必須ですね (キリッ
ポートフォーワーディング(これがOutgoingやw)
VPNパススルー
⇒どうやらデフォルトでVPN接続はできないようです。
VPNを使用する場合は「制限」になっているので「許可」しましょう

DHCP
デフォルトだと
192.168.100.100~192.168.100.109
の10個がホストに割り当てられます
リースタイムも決められます。これは結構おどろいた
DHCPでIPを取得しているクライアント情報をみれます

DNS
あります。当たり前。なかったらネットできましぇんw

ネットワーク設定
デフォルトゲートウェイのIPも変更できます(LAN側)
デフォルトは「192.168.100.254」
プライベート側ならサブネットも組めそう(未検証、ムリくさい、単純にネットワークアドレスの領域を設定するだけ)

無線LAN
IEEE 802.11b/g の両方をサポート
デフォルトで2つのアクセスポイント(SSID)を所持、SSID名、パスワード変更可

■その他
ハードウェアバージョン
アカウント情報
タイムゾーン
リブート
なんかは専用のUIで確認、実行できるみたいですね。

と大体こんな感じでしょうか。
なんでこんなこと調べたかっていうとDefault Gatewayっていったい誰が管理してるものなのかなーとふと思ったので、身近なルータの中を見ればわかるんじゃないかと思って調べたんですけど、結局誰が持ってるか決定的なものはわからなかったかなーw
まぁたぶんDHCPだと思いますね。

というか、一番いいのはsshがあいていて自分で中いじれるのがいんですけどねwww
おそらくLinuxOSだとは思うのですが、何が入っているのだろうか。。。
適当にターミナルでアクセスしたらいけちゃったりしたり。。。
⇒ダメでしたwそりゃそうかw

2012年3月22日木曜日

Error receiving mcast package (errorCounter=10). Try Recovery!

2012/03/22 22:49:49 org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run
警告: Receiver Thread ends with errorCounter=1.
2012/03/22 22:49:50 org.apache.catalina.cluster.mcast.McastServiceImpl setupSocket
情報: Setting cluster mcast soTimeout to 500
2012/03/22 22:49:50 org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run
情報: Membership recovery was successful.
2012/03/22 22:50:00 org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run
警告: Error receiving mcast package (errorCounter=10). Try Recovery!
java.net.SocketTimeoutException: Receive timed out
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
        at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:145)
        at java.net.DatagramSocket.receive(DatagramSocket.java:725)
        at org.apache.catalina.cluster.mcast.McastServiceImpl.receive(McastServiceImpl.java:254)
        at org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread.run(McastServiceImpl.java:346)



・・・
service tomcat start
をしたはいいがずっとこんな感じでエラーログが永遠に流れる場合、
tomcatのレプリケーション設定がうまくいってない状態です
おそらくレプリの設定はしてるけど、レプリするサーバがない状態におきます。
そんなときは一旦レプリの設定を解除してあげましょう。

vi /usr/local/tomcat/conf/server.xml


<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"・・・
</Cluster>

の部分をコメントアウトしてあげましょう

<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
・・・
</Cluster>
-->


こんな感じで。
その後もう一度tomcatを再起動すると該当のエラーも出なくなるはずです。
参考になれば。お試しあれ。

run-all-testsの結果【MySQLのベンチマークツール】

本当になんとなく張っておきます。
誰か詳しい見方をおせーてくれw

[root@yoshi3 sql-bench]# pwd
/usr/share/sql-bench
[root@yoshi3 sql-bench]# ./run-all-tests
Benchmark DBD suite: 2.15
Date of test:        2012-03-20 11:54:20
Running tests on:    Linux 2.6.18-238.el5 x86_64
Arguments:
Comments:
Limits from:
Server version:      MySQL 5.0.95/
Optimization:        None
Hardware:

alter-table: Total time: 16 wallclock secs ( 0.04 usr  0.01 sys +  0.00 cusr  0.00 csys =  0.05 CPU)
ATIS: Total time: 17 wallclock secs ( 2.10 usr  0.11 sys +  0.00 cusr  0.00 csys =  2.21 CPU)
big-tables: Total time: 15 wallclock secs ( 1.18 usr  0.14 sys +  0.00 cusr  0.00 csys =  1.32 CPU)
connect: Total time: 130 wallclock secs (15.94 usr  3.59 sys +  0.00 cusr  0.00 csys = 19.53 CPU)
create: Total time: 507 wallclock secs ( 4.52 usr  0.59 sys +  0.00 cusr  0.00 csys =  5.11 CPU)
insert: Total time: 1249 wallclock secs (156.97 usr 15.45 sys +  0.00 cusr  0.00 csys = 172.42 CPU)
select: Total time: 379 wallclock secs (15.73 usr  1.40 sys +  0.00 cusr  0.00 csys = 17.13 CPU)
transactions: Test skipped because the database doesn't support transactions
wisconsin: Total time: 11 wallclock secs ( 1.38 usr  0.19 sys +  0.00 cusr  0.00 csys =  1.57 CPU)

All 9 test executed successfully

Totals per operation:
Operation             seconds     usr     sys     cpu   tests
alter_table_add                        8.00    0.02    0.00    0.02     100
alter_table_drop                       7.00    0.01    0.00    0.01      91
connect                                9.00    1.81    0.31    2.12   10000
connect+select_1_row                  11.00    1.96    0.33    2.29   10000
connect+select_simple                 10.00    1.91    0.35    2.26   10000
count                                  8.00    0.03    0.00    0.03     100
count_distinct                        10.00    0.11    0.01    0.12    1000
count_distinct_2                      18.00    0.18    0.01    0.19    1000
count_distinct_big                    21.00    1.70    0.02    1.72     120
count_distinct_group                  11.00    0.30    0.02    0.32    1000
count_distinct_group_on_key           14.00    0.18    0.02    0.20    1000
count_distinct_group_on_key_parts     10.00    0.30    0.01    0.31    1000
count_distinct_key_prefix              6.00    0.10    0.02    0.12    1000
count_group_on_key_parts              12.00    0.28    0.01    0.29    1000
count_on_key                         108.00    4.00    0.44    4.44   50100
create+drop                          110.00    1.32    0.19    1.51   10000
create_MANY_tables                   258.00    1.33    0.14    1.47   10000
create_index                           1.00    0.00    0.00    0.00       8
create_key+drop                      135.00    1.50    0.17    1.67   10000
create_table                           1.00    0.00    0.00    0.00      31
delete_all_many_keys                  29.00    0.00    0.00    0.00       1
delete_big                             0.00    0.00    0.00    0.00       1
delete_big_many_keys                  29.00    0.00    0.00    0.00     128
delete_key                             3.00    0.16    0.06    0.22   10000
delete_range                           4.00    0.00    0.00    0.00      12
drop_index                             0.00    0.00    0.00    0.00       8
drop_table                             0.00    0.00    0.00    0.00      28
drop_table_when_MANY_tables            2.00    0.17    0.05    0.22   10000
insert                                70.00    5.70    1.55    7.25  350768
insert_duplicates                     19.00    1.80    0.44    2.24  100000
insert_key                            58.00    2.53    0.63    3.16  100000
insert_many_fields                     4.00    0.10    0.01    0.11    2000
insert_select_1_key                    2.00    0.00    0.00    0.00       1
insert_select_2_keys                   3.00    0.00    0.00    0.00       1
min_max                                6.00    0.01    0.01    0.02      60
min_max_on_key                        32.00    5.70    0.64    6.34   85000
multiple_value_insert                  1.00    0.09    0.00    0.09  100000
once_prepared_select                  32.00    3.47    0.48    3.95  100000
order_by_big                          19.00    5.02    0.07    5.09      10
order_by_big_key                      19.00    4.88    0.10    4.98      10
order_by_big_key2                     17.00    4.80    0.08    4.88      10
order_by_big_key_desc                 19.00    4.83    0.09    4.92      10
order_by_big_key_diff                 18.00    4.82    0.07    4.89      10
order_by_big_key_prefix               18.00    4.74    0.07    4.81      10
order_by_key2_diff                     2.00    0.43    0.01    0.44     500
order_by_key_prefix                    2.00    0.24    0.01    0.25     500
order_by_range                         1.00    0.24    0.00    0.24     500
outer_join                            19.00    0.01    0.00    0.01      10
outer_join_found                      17.00    0.00    0.00    0.00      10
outer_join_not_found                  15.00    0.00    0.00    0.00     500
outer_join_on_key                     16.00    0.00    0.00    0.00      10
prepared_select                       43.00    6.66    0.61    7.27  100000
select_1_row                          18.00    1.72    0.41    2.13  100000
select_1_row_cache                    16.00    1.62    0.42    2.04  100000
select_2_rows                         20.00    1.79    0.42    2.21  100000
select_big                            18.00    4.75    0.09    4.84      80
select_big_str                         6.00    1.03    0.15    1.18   10000
select_cache                          49.00    0.85    0.09    0.94   10000
select_cache2                         48.00    0.88    0.09    0.97   10000
select_column+column                  19.00    1.67    0.46    2.13  100000
select_diff_key                        0.00    0.04    0.00    0.04     500
select_distinct                        4.00    0.38    0.01    0.39     800
select_group                          17.00    0.35    0.04    0.39    2911
select_group_when_MANY_tables          2.00    0.20    0.04    0.24   10000
select_join                            1.00    0.11    0.01    0.12     100
select_key                            89.00   14.61    1.33   15.94  200000
select_key2                           94.00   14.82    1.42   16.24  200000
select_key2_return_key                91.00   14.54    1.42   15.96  200000
select_key2_return_prim               93.00   14.65    1.33   15.98  200000
select_key_prefix                     94.00   14.60    1.41   16.01  200000
select_key_prefix_join                 5.00    0.92    0.01    0.93     100
select_key_return_key                 87.00   14.74    1.35   16.09  200000
select_many_fields                    11.00    1.08    0.13    1.21    2000
select_range                          65.00    1.94    0.06    2.00     410
select_range_key2                     11.00    1.44    0.10    1.54   25010
select_range_prefix                   11.00    1.39    0.11    1.50   25010
select_simple                         10.00    1.26    0.35    1.61  100000
select_simple_cache                   10.00    1.17    0.38    1.55  100000
select_simple_join                     1.00    0.14    0.00    0.14     500
update_big                            11.00    0.00    0.00    0.00      10
update_of_key                         15.00    0.92    0.32    1.24   50000
update_of_key_big                     10.00    0.02    0.00    0.02     501
update_of_primary_key_many_keys       12.00    0.01    0.00    0.01     256
update_with_key                       74.00    4.91    1.73    6.64  300000
update_with_key_prefix                27.00    2.81    0.66    3.47  100000
wisc_benchmark                         3.00    0.78    0.03    0.81     114
TOTALS                              2329.00  195.58   21.40  216.98 3425950

2012年3月21日水曜日

yumでインストールしたrpmパッケージを確認する方法

rpm -qa | grep "パッケージ名の一部"
rpm -qil "見つけたパッケージ名"

の2段階で調べることが可能、普通に便利です。
お試しあれー

【便利、使える】ベンチマークコマンド集

いろいろなサーバ、ハードのベンチマークのできるコマンドを集めてみました。

■Webサーバ
コマンド:ab
例:ab -n 1000 -c 100 http://yoshi3/
(100多重で1000リクエスト送った際のレスポンス性能を測定します)
Apache HTTP Serverのインストールは必須です
各種結果のパラメータの見方はこちらを参照してください

■HDD
コマンド:hdparm
例:hdparm -ft /dev/sda3
(/dev/sda3/のパーティションをベンチマーク)
このコマンドはパーティションごとにしか実行できないので注意してください
また、write性能は測れません。
read, writeも含めていい感じでベンチマークしたい方はここにいい感じのがありますw
dd」コマンドを使って測定してます

コマンド:dbench
例:dbench 5
(同時に5プロセスから負荷をかける)
dbenchはyumれないみたいですね。 結果が非常に見やすく、ベンチマークでは最も定番ツールかもしれませんね。
インストールや設定はここが非常に参考になりそうです。


■DBサーバ
コマンド:run-all-tests
例:/usr/share/sql-bench/run-all-tests
MySQLのインストールは必須特に「mysql-bench-5.0.95-1.el5_7.1.x86_64.rpm」みたいな
mysql-benchのインストールが必須です
しかもこれ「/usr/share/sql-bench/」というフォルダに展開されるので、ここまで行って実行する必要があります。
ここにもない場合はrpmコマンドでどこに展開されているのか確認する必要があります。
all-testsだけあって結構時間がかかりますw
MySQLが持っているリクエストのほとんどのレスポンス計測を行ってくれそうです。
他のDBサーバ(postgres、oracle、MSSQLなどなど)にもそれ専用のベンチマークコマンドがあると思います(未調査)。
MySQL関係だと他に「sysbench」がありますね。
参考サイト:http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-00381DC3


■VirtualServer(Vmware製品)
コマンド:vmstat
例:vmstat 1
1秒おきに結果を表示します
これはVmwareServerである必要があります。VmwareのVMである場合には
必ずインストールされていて簡単に性能チェックができるので便利です
⇒追記:Vmware製品とは関係なく実行できます。。。すいません。

■ネットワーク
コマンド:iperf
例:
(すいまんせん。未検証なもので・・・)
これもyumからはムリでソースからのインストールですね。
最新版はこちら
インストール、設定等はこの辺りがよさそうです。




とまぁいろいろとベンチーマークコマンドはあるみたいです。
そもそもベンチマークの定義を考えると、別に方法はなんでもいいわけで
それよりも
本当にベンチマークとしてやるべき性能テストや負荷テストをやっているのか?
というほうが大事ではあるので、ここで紹介しているのは< あくまでもツール
として捉えていただけると幸いです。
まぁでもツールがあった方がぜんぜん便利なんですけどねw

2012年3月20日火曜日

英語キーボードで日本語入力に変換する方法

いわゆる日本語キーボードの右上にある「半角/全角」ボタンを押すことです。
英語キーボードの場合はあたり前ですが、そんなボタンが付いてないので
一応日本人である私もたまには日本語を使いたいと思うので、
備忘録として残しておきたいと思います。
以下でできます。
Alt+`(バッククオート)
キーバインドを適当に変更すれば、Shift+Spaceとかもできるので
とりあえずデフォルトだとというのを忘れないために書いておく。

2012年3月19日月曜日

【図解 わかりやすい】UNIX系システムの系統図

Wikipedia抜粋。
正直これはすごいわかりやすいのでメモ。

http://upload.wikimedia.org/wikipedia/commons/d/d9/Unix_history-simple.en.svg

【Apache+OpenSSL】オレオレ証明書を作ってみた

 作ってみました。というか以下のリンクを参考に作成してみただけです。

http://www.maruko2.com/mw/Apache/SSL%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%A8mod_ssl%E3%81%AE%E8%A8%AD%E5%AE%9A

まずはここに記載してある通りに必要な証明書とキーを作成してから
以下を見直すといいかもしれません。

■yum -y install mod_ssl
/etc/httpd/conf.d/ssl.conf がない場合は上記を実行

■サーバ証明書とキーファイルの設定
上記にも書いてありますが、ここだけ別途抜き出して書いてみました
/etc/httpd/conf.d/ssl.conf の112行目に「SSLCertificateFile」
の設定を作成したサーバ証明書があるパスに書き換えましょう
(.crtファイルとなっているものです)
/etc/httpd/conf.d/ssl.conf の120行目に「SSLCertificateKeyFile」
の設定を作成したサーバ証明書があるパスに書き換えましょう
(.keyファイルとなっているものです)

■ホスト名の設定
service httpd start を行った場合に
---
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
---
と出る可能性があるので、
/etc/httpd/conf.d/ssl.conf の86行目に「ServerName」
/etc/hostsに記載しているホスト名を書きましょう
ワタシの場合はこんな感じで記載しました
ServerName yoshi3:443

■確認 service httpd start
(サーバを起動して際にパスワードを聞かれることがありますが、パスなしで起動することもできるのでその方法は上記の参考URLに記載してあります)
443のポートを開放する
ブラウザで確認
(「信頼できない接続」警告が表示されますが、例外追加で接続できます。証明書がオレオレ証明書なので、警告がでているのだと思います。)

以上です。かなり箇条書きで見づらくてもうしわけないです。。。
次やるときは、信頼できない接続の警告もでない証明書の作成もやりたいかなーとか思っていますが、いろいろ大変そうです。というかムリ
参考サイト:http://www.ssl-secure.jp/about_ssl.html
何かしら参考になればと思います。

2012年3月18日日曜日

Windows重要コマンドメモ

重要、便利なコマンド(ファイル名を指定して実行)をメモしておきます。
基本的なコマンド等は記載せず重要、便利だとおもったもののみ記載します。
随時更新します。

・services.msc
サービス
サービス一覧を表示、管理するやつ
各種サービスの停止や再起動はここで実施できる

・gpedit.msc
ローカルグループボリシーエディター
かなり細かく設定できるやつ
階層をたどるのが大変

・devmgmt.msc
デバイスマネージャー

・compmgmt.msc
コンピューターの管理
ディスクの管理とかハードの状況を見れる
パスワードポリシーもここから

・msconfig
システム構成
ブート構成を設定できる、スタートアップより上の層を設定できる

・regedit
レジストリエディタ
いわずとしれた定番

・sysdm.cpl
システムのプロパティ
「コンピュータ」を右クリップのプロパティからいけるやつ
ここで環境変数を設定してPATHに通せばどんな実行ファイルでもファイル名を指定して実行からいけます

・mstsc
リモートデスクトップ
RDPを頻繁に使う場合にはかなり便利

・route -r または route print
経路情報を表示する
Windowsでネットワークを確認する場合にはかなり重宝する

・powershell
Windows Power Shellを起動する
コマンドプロンプト上で入力するとPowerShellモードになります
基本的なスクリプトはこちら

・taskmgr
タスクマネージャ

・slmgr
アクティベーションの確認を実施
コマンドプロンプトを管理者権限で実行する必要あり
「slmgr」をただ実行するだけでもヘルプが表示される
「slmgr -ato」でライセンス認証(アクティベーション実行)

・proxycfg
コマンドプロンプトでプロキシを使用しているか確認できる
「proxycfg -u」でIEのプロキシ設定を反映
「proxycfg -d」でプロキシ設定を削除
(どちらも再起動後に有効化)

・msinfo32
システム情報
OSのバージョンとかカーネル情報、ハード情報を確認できます

・env
コマンドプロンプト上で実行する
設定されている環境変数の一覧を表示する

・nbtstat -n
NetBIOS情報を取得する

・certmgr.msc
証明書マネージャを起動する

Linux重要コマンドメモ

重要、便利なコマンドをメモしておきます。
(重要、便利な設定ファイルもメモしておきます。)
基本的なコマンド等は記載せず重要、便利だとおもったもののみ記載します。
やっぱりいろいろと気になったもの全部メモ代わりに載せていきますw
他の記事で具体的に記載したものも簡潔に記載しているかもしれません
随時更新します。

・netstat
現在開放中のポート情報を監視することができる
重要なのは「Local Address」と「State」のカラム
「State」がLISTENになっているものは開放してて、接続をまっているもの
「ESTABLISHED」は開放しててかつ現在接続中のポート

・route
ルーティングを見ることができる
ここでゲートウェイが見えていてかつそこと通信が取れてないと
当たり前ですが、他のマシンとも通信できない状態です

・awk '{print $NF}'
スペースで分割して必要なところだけを見ることができる
$NFのところは「$1,2...」とかにしてけばOK
いろいろなコマンドと応用可能
代表的な連携コマンド:「ls -ltr」「xargs(tar、rm)」「grep」「sort | uniq -c」「ps aux」

・ifconfig eth0
インターフェース名を指定して実行するとそこだけ閲覧することができる

・hostname, hostname -i
自分自身が名前解決できるかをチェックできる

・dig(nslookup)
nslookupを使うならdigを使います

・iptables -L
現在のフィルタの設定をみることができます
destinationが3つでるときは無効になっているときです

・grep -B 20、grep -A 20
該当する行の20行前と20行後を表示する

・uname -a
カーネル情報を調べる

・free
メモリの空き情報

・fdisk -l
現在、物理的に接続されてるディスク情報を調べる

・curl
あるhttpのURLに対してリクエストを送ることができる
(かーる、しーゆーあるえると発音する)

・lsof -p プロセスID
そのプロセスが現在開いているファイルの数を調べる
大抵のLinuxではファイルディスクリプタは1024で設定されているため
1024個以上ファイルを開いているプロセスがあると
Too many open files
というエラーになっている可能性がある(詳しくは別途記事を書く予定)

・ypcatコマンド(NISにある情報をクライアントから取得するコマンド)
「ypcat passwd」・・・ユーザの一覧を取得
「ypcat group」・・・グループの一覧を取得
「ypcat hosts」・・・連携しているホストの一覧を取得
「ypwhich」・・・NISサーバのホスト名を取得
「ypbind」・・・NISサーバと同期する
等々まだまだいろいろありそうです
参考リンク

・fuser -va /mnt
/mnt領域を使用しているユーザが誰か調べることができる
⇒「lsof | grep "/mnt"」のほうが詳細にわかるかもしれない

・2>&1
標準出力を標準エラーに出力する
コマンドの最後につけることができる

・id
自分の名前、グループ名、IDを確認する

・ethtool eth0
ネットワークインタフェースの状態を確認する

・top
Shift+oで指定したカラムでソーティング可能
「n」でメモリの使用率でソート

・zcat
.gz形式のファイルを復号化して通常のテキストとして表示する

・for i in `ls`; do echo $i; done;
ループ処理をさせたいときに使用する
「``」内を好きなように変更すればどんなループでもできる

・expr \( `date -d'2013/12/26' +%s` - `date -d'2013/9/25' +%s` \) / 60 / 60 / 24
日付の計算をして指定した日にち間の日数を取得します

・pstree -an
起動中のプロセスをツリー状に表示してくれます

・strace -f -p pid
指定したプロセス情報を追跡します
-fでforkした子プロセスも追跡します

・ip
ip a ・・・ ifconfig
ip r ・・・ route
ip n ・・・ arp

-----------------------------------

・ネットワーク設定
emacs -nw /etc/sysconfig/network-scripts/ifcfg-eth0
emacs -nw /etc/sysconfig/network

・ホスト設定
emacs -nw /etc/hosts

・マウント設定
emacs -nw /ets/fstab

・プロファイル設定
emacs -nw ~/.bashrc

・ディストリビューション情報
cat /etc/issue

・CPU情報
cat /proc/cpuinfo

・DNSサーバの設定
emacs -nw /etc/resolv.conf

・プロセスが持つ各種カーネルパラメータの上限値を確認
cat /proc/[process_number]/limits

・プロセスが実行しているスレッド数を確認
ls -l /proc/[process_number]/task | wc -l

2012年3月17日土曜日

【lsの可能性】指定した年月のファイルたちをtarで固める方法

lsコマンドって結構すごいんですよ。
とりあえずタイトルの方法は以下

ls -l --time-style="+%Y-%m" | grep "2012-03" | awk '{print $NF}' | xargs tar cvf /root/2012-03.tar


説明すると、2012年3月中に最後に更新されたファイルを検索してそれたをtarで固める
っていう流れになります。
検索とかだとfindを使うイメージがありますが、今回はあえてlsを使ってみました
応用して削除とかもできます


ls -l --time-style="+%Y-%m" | grep "2012-03" | awk '{print $NF}' | xargs rm -f {} \;

lsすごいです。
よく使うオプションは
「-ltr」ですが、
本当にlsってオプション多いですよね 。
参考サイト:http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230820/
「-h」「-lR」とかも魅力ですかね。
パイプでつなげば応用が利きすぎますね。
ちょっとしたファイル処理だったらシェルスクリプトだけで
全然なんとかなりますね。
そして、今回は「--time-style」っていうオプション使いました。
これもすごいね。
皆さんもお試しあれ。

2012年3月16日金曜日

mount.nfs: Input/output error

portmapのプロセスが起動していない可能性があります。

ps aux | grep portmap



rpc 3211 0.0 0.1 8076 600 ? Ss Mar12 0:00 portmap

が出力されれば大丈夫でしょう。
でない場合は「service portmap start」してみましょう。
お試しあれー

2012年3月14日水曜日

Java製の形態素解析、igoを使ってみた

Javaの形態素解析と言えばずっとSenかと思っていました。。。
Senの更新ってずっととまってるんですね。。。

参考リンク:http://java.net/projects/sen/
参考リンク:http://java.net/projects/sen/downloads

ダウンロード先にもモジュールがないみたいですね。(20120312現在)
SVNは公開されているのでソースコード自体は取得できるので
自分でビルドすることはできます。
よく見かける以下のリンクも切れてしまっているようです。

参考リンク:https://sen.dev.java.net/servlets/ProjectDocumentList?folderID=755&expandFolder=755&folderID=0

そんなこんなで久しぶりにSenを触ってみようかなと思ったのですが、
自分でビルドするのもめんどくさいのでどうしようかと。。。
そんな中ネットを彷徨っていたらこんな形態素解析を発見
igo
参考リンク:http://igo.sourceforge.jp/

なんと純Java。Mecab辞書なので基本的な解析結果はMecabと一緒ですね。
ってことは茶筅を元にしてるSenも元はMecabなので、結局ほぼ一緒ですね。
(一緒なのかいwwと思ってしまったのは自分だけではないはず)

まぁでもせっかく調べてめぐり合えたので使ってみました。
以下、そのときのメモです。
純Javaなので、どう考えてもJavaから使うのが普通ですが、
そこまでやる気がうせてしまったので、やめましたw
最終的には実行スクリプトを登録して終了です。
参考までにどうぞー。

[root@yoshi3 05_20120311_igo]#
Require packages : ant
[root@yoshi3 05_20120311_igo]# yum -y install yum
...
[root@yoshi3 05_20120311_igo]#
Here is download link of igo : http://sourceforge.jp/projects/igo/releases/
Here is download link of ipadic : http://code.google.com/p/mecab/downloads/detail?name=mecab-ipadic-2.7.0-20070801.tar.gz
[root@yoshi3 05_20120311_igo]#
[root@yoshi3 05_20120311_igo]# tar xvf mecab-ipadic-2.7.0-20070801.tar.gz
[root@yoshi3 05_20120311_igo]# java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP
### Build word trie
### Build word dictionary
### Build matrix
### Build char-category dictionary
DONE
[root@yoshi3 05_20120311_igo]#
[root@yoshi3 05_20120311_igo]# java -cp igo-0.4.5.jar net.reduls.igo.bin.Igo ipadic
today is sunny.
today 名詞,固有名詞,組織,*,*,*,*
is 名詞,一般,*,*,*,*,*
sunny 名詞,一般,*,*,*,*,*
. 名詞,サ変接続,*,*,*,*,*
EOS
[root@yoshi3 05_20120311_igo]#
Create a file "igo" as follow :
[root@yoshi3 05_20120311_igo]# cat igo
#!/bin/sh
IGO_HOME=/root/05_20120311_igo/
java -cp $IGO_HOME/igo-0.4.5.jar net.reduls.igo.bin.Igo $IGO_HOME/ipadic
[root@yoshi3 05_20120311_igo]# chmod 744 igo
[root@yoshi3 05_20120311_igo]# cd /usr/local/sbin/ && ln -s /root/05_20120311_igo/igo igo
[root@yoshi3 05_20120311_igo]# igo

2012年3月13日火曜日

シェルスクリプト内でexportコマンドを実行して環境変数を設定する方法

環境は以下

---
[root@localhost bin]# uname -a
Linux localhost 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
 ---

たとえば以下のようなシェルスクリプトがあり、実行してみたとします

--- 
[root@localhost ~]# cat test.sh
#!/bin/sh
TEST=aaa
export TEST
[root@localhost ~]# ./test.sh
[root@localhost ~]# set | grep TEST
[root@localhost ~]# echo $TEST

---

あらっと。
test.sh内で定義したTESTという環境変数には何も入っていないようです。
そんなときには
source」コマンドを使用して実行してみてください

以下の結果のようになるはずです。

---
[root@localhost ~]# source test.sh
[root@localhost ~]# set | grep TEST
TEST=aaa
[root@localhost ~]#
---

1時間くらい悩みました!w
お試しあれ!

2012年3月12日月曜日

dateコマンドメモ

簡単にメモ

date '+%Y%m%d_%H%M%S'

こんな感じで出力されますね。

[root@localhost ~]# date '+%Y%m%d_%H%M%S'
20120302_234417

定期バッチとかファイル名が決まらないときには使ってみてください。

2012年3月11日日曜日

5分でできるApacheでのベーシック認証

[root@localhost ~]# emacs -nw /etc/httpd/conf/httpd.conf
DocumentRootを調べます
DocumentRoot "/var/www/html"

DocumentRootディレクティブを探します
<Directory "/var/www/html">

上記のディレクティブ内に以下を追記します
AuthUserFile /var/www/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your ID / PW"
AuthType Basic
Require valid-user

[root@localhost ~]# cd /var/www/html/
先ほど調べておいたDocumentRootに移動します

[root@localhost ~]# htpasswd -c .htpasswd kakakikikeke
New password: **********
Re-type new password: **********
Adding password for user kakakikikeke

[root@localhost ~]# touch .htaccess
[root@localhost ~]# emacs -nw .htaccess
以下を記載して保存してください
AuthUserFile /var/www/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your ID / PW"
AuthType Basic
Require valid-user
<files "^.(htpasswd|htaccess)$"="" ~="">
  deny from all
</files>

[root@localhost ~]# chmod 604 .ht*
[root@localhost ~]# service httpd start
httpd を起動中: OK

でブラウザを開いてIPアドレスを入力すれば
ベーシック認証のダイアログが発動して設定したID/PWでないと
ログインできないはずです
超簡単でしょ。お試しあれ

2012年3月10日土曜日

tcpdumpしてみた

eth0に対するtcpプロトコルのみ監視しtest.dmpに結果を吐き出すコマンド

tcpdump -i eth0 -n tcp -w test.dmp

「-n」をつけることで、名前変更を行わず直接IPアドレスを出力する
そして、このtest.dmpを読み込む


tcpdump -r test.dmp

grepとか使えば検索もできる(はず)
お試しあれー

2012年3月9日金曜日

ユーザーがネットワークにログオンしていないため、要求された操作は実行されませんでした。 指定されたサービスは存在しません。が出たときの対処方法

↓これを


↓これに変更するだけ

これの出し方はタスクを右クリックしてプロパティを選択
全般タブを選択すると表示されます

画像の下の方に設定変更すると
OKボタンを押したときにパスワードの入力が求められるので
実行するユーザのWindowsのログインパスワードを入力してあげましょう
これをすると掲題のエラーが出なくなります。

ちなみにこのエラーがでる原因は、
Windowsからログオフしている状態でスケジューラが回ってしまったため発生したエラーになります。
対応策は単純にログオフ状態でも実行できるようにしたということです。

まぁLinuxでいうところの「cron」と「anacron」の違いといったところでしょうか。
お試しあれー

2012年3月8日木曜日

Linuxで大容量ファイルを一瞬で作成する方法

dd if=/dev/zero of=tempfile bs=1M count=10

10MBのファイルを一瞬で作成できます。
100MBのファイルを作成したい場合はには「bs=10M」にするか「count=100」
にするとできます。

同様に「mkfile」というコマンドもあるらしいのですが、
こちらは小生の環境ではできませんでした。
この辺が参考になるかもしれまんせん。
http://x68000.q-e-d.net/~68user/unix/pickup?mkfile


2012年3月7日水曜日

CentOS samba構築メモ

P.S 20150223
不要なコマンドを削除しました
CentOS6.6でも同様のコマンドでいけることを確認しました
見出しを追加しました

インストール

[root@localhost ~]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

[root@localhost ~]# yum -y install samba
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
Excluding Packages in global exclude list
Finished
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:3.0.33-3.29.el5_7.4 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
samba x86_64 3.0.33-3.29.el5_7.4 updates 16 M

Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 16 M
Downloading Packages:
samba-3.0.33-3.29.el5_7.4.x86_64.rpm | 16 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : samba 1/1

Installed:
samba.x86_64 0:3.0.33-3.29.el5_7.4

Complete!

ユーザはrootのまま行いたいと思います
[root@localhost ~]# pdbedit -a root
new password:*********

retype new password:*********

account_policy_get: tdb_fetch_uint32 failed for field 1 (min password length), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 2 (password history), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 3 (user must logon to change password), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 4 (maximum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 5 (minimum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 6 (lockout duration), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 7 (reset count minutes), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 8 (bad lockout attempt), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 9 (disconnect time), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 10 (refuse machine password change), returning 0
Unix username: root
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1133800887-2859887277-257256782-1001
Primary Group SID: S-1-5-21-1133800887-2859887277-257256782-513
Full Name: root
Home Directory: \\localhost\root
HomeDir Drive:
Logon Script:
Profile Path: \\localhost\root\profile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 金, 02 3月 2012 08:45:41 JST
Password can change: 金, 02 3月 2012 08:45:41 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@localhost ~]# vim /etc/samba/smb.conf
編集するのは
「hosts allow = 」
の部分をアクセス元のWindowsサーバのIPに変更します
この場合は共有するとユーザのカレントが共有先になるので
/root/が共有先のディレクトリとなる
[root@localhost ~]# /etc/init.d/smb start
SMB サービスを起動中: [60G[ [0;32m OK [0;39m]
NMB サービスを起動中: [60G[ [0;32m OK [0;39m]
[root@localhost ~]# chkconfig smb on
[root@localhost init.d]# service iptables stop
ファイアウォールルールを適用中: [60G[ [0;32m OK [0;39m]
チェインポリシーを ACCEPT に設定中filter [60G[ [0;32m OK [0;39m]
iptables モジュールを取り外し中 [60G[ [0;32m OK [0;39m]

iptablesを有効にして使いたい場合は「137」「138」「139」「445」
をtcpで許可してあげると疎通できると思います
※追記です。基本的なファイル共有だけなら「445」だけで大丈夫です。
プリンタなども共有する場合にだけ「137」「138」「139」が必要です。
ムダなポートは閉じておきましょう!

Windowsからの接続

[root@localhost init.d]# ps aux | grep smb
root 25061 0.0 0.5 140896 2736 ? Ss 09:00 0:00 smbd -D
root 25066 0.0 0.2 140896 1436 ? S 09:00 0:00 smbd -D
root 25067 0.0 0.6 140916 3100 ? S 09:00 0:00 smbd -D
root 25079 0.0 0.1 65444 860 pts/1 R+ 09:04 0:00 grep smb

Windowsのファイル名を指定して実行から「\\SambaサーバのIPアドレス」を
入力してファイル共有されるか確認してみましょう

ネットワークドライブとして接続する場合は「\\SambaサーバのIPアドレス\root」として接続してください

ここでできない場合はネットワークの疎通ができてないのが原因だと思われるので
pingやiptablesを駆使してネットワークの設定をしてみてください
また今回ユーザはrootを使用しているためセキュリティ的に危険だという方は
別のユーザ設定もできるので、以下を参照してやってみてください
http://centossrv.com/samba.shtml

あとすいません。今回emacs上のshellでインストールしたので、日本語が化けてる
ところがありますが、ご了承ください。。。w
では、早速sambaを使ってこのインストールメモを引っ張ってきたいと思います

2012年3月6日火曜日

viで指定した範囲を切り取り(コピー)する方法

コピーしたい始めのところで「mm」
コピーをここまでしたいというところで「d'm」

で切り取りができるのであとは
「y」
で貼り付けが何度でも行えます

自分は基本的にはemacsユーザなので、いわるゆコピペは
「Ctlr+Space」でマーキングして「Alt+w」や「Ctrl+w」でコピーor切り取りをしてから
「Ctrl+y」で貼り付けするわけですが、
仕事上、viを使う機会が多くviも普通に使えないとマズいです。
もともとキーバインドにはこだわるほう(笑)だったので、viは結構早くなれました。
使ってみるとviも楽です。非常にCtrlがないのはいいです。
でも、ESCに毎回行ったり、今回のように範囲貼り付けが結構大変など
やはり自分はまだemacsのほうが断然使いやつみたいですw
viを必然的に使うようになってしまったせいで、
ESCを「半角/全角漢字」のところにキーをバインドしたのいい思い出です。
じゃあ日本語変換キーはどこにあるかというとスペースのとなりです(キリッ

2012年3月3日土曜日

JAWS Summit 2012 のTogetter

http://togetter.com/li/267076

メモメモ。
いきたかったなー
あと、Togetterしてくれた人ありがとうございます!

2012年3月2日金曜日

CentOSのLinuxカーネルのバージョンを調べる方法

念のためCentのバージョンも記載しておきます

---
[root@localhost ~]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m
---

で、確認方法

---
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
---

uname -a」コマンドで上記のようの情報が出力されるかとおもいます。
この表示の
「2.6.18-238.el5」の部分がLinuxカーネルのバージョンになります。
参考になれば。

■20120612追記
x86_64という表示があれば64bitOS
i386やi686と表示された場合は32bitOS

TeraPadで引用返信「>」を挿入する方法

メールの引用返信みたいに先頭に「>」をつける方法です。
Terapadでやると一瞬。非常に簡単です。

①いったん貼り付ける元をクリップボードにコピー
(まぁ普通にCtrl+a、Ctrl+cで大丈夫ですw)
「Ctrl+q」で貼り付け
すると貼り付けられたデータの先頭に「>」が挿入されて貼り付けできます。

是非一度おためしあれ。
ちなみに私はCtrl+qがxkeymacsの切り替えボタンなので、
メニューバー[編集]→引用符付き貼り付け
でおとなしく貼り付けしてますw

2012年3月1日木曜日

Twitterのアカウントが凍結した・・・

P.S 2013/3/1
2月25日に以下の凍結申請を出す
2月28日に実はもう一通「申請した件どうなってますか?」メールをする
3月1日なんとあぼーん解消
(意外と、2月28日の追加送信がきいたのかもしれないですねw)
(以下は2月25日に出した申請から返ってきた自動返信メールです)

初回記述
凍結してサポートに「凍結を解除してください。」みたいなメールを
送ったら以下のような返信が速攻で帰ってきた。
おそらくこれは自動送信のメールだろう。
この2,3日後に本当にどうなったかの結果メールがくるのだろう。
結構大事にしてたアカウントだったからショックだ。。。orz
また、結果のメールが来たら共有したいものだ。
とりあえず一報ということで以下に、メモしておく。

We understand that you're contesting an account suspension. 
Please be sure to read this entire email; 
you will need to take further action in  order to reopen your ticket and trigger a review of your account. 

Twitter suspends accounts for a variety of reasons:

• If your account was suspended for aggressive following behavior, you should have received an email notification to the address associated  with your Twitter account. 
  You'll need to confirm that you've removed all prohibited following automation from your account, and will stop any  manual aggressive following behavior. 
  To expedite your appeal process, please review our Best Practices page if you haven't already, and then reply to this ticket with a confirmation that you understand our policies and will not engage in any  prohibited following behavior.

• If you didn't receive an email indicating why your account was suspended, please take a minute to review the Twitter Rules. 
  If you suspect you've been suspended for another reason, please reply to this email with a short explanation.

• If you received an email from admin@twitter.com saying 'you're being suspended' or that we're going delete your account, you're safe; the email is fake. 
  More information here https://support.twitter.com/articles/204820-safety-fake-twitter-emails

• While we strive to avoid mistakes, it's also possible that your account was suspended in error. 
  If after reviewing the Rules, you have no idea why your account was suspended, just reply to this email  indicating as much, and we'll take another look at your case. 
  Our  apologies if the error turns out to be ours.

Thanks, 
Twitter Trust & Safety

---------------------------------------------------------------------------------- 
Responding to this email will reopen this ticket and put your ticket in queue for support. 
If you do not reply, your case will be closed.  Note that you need to reply from the address this mail was sent to. 
If  you use an alias (such as username+alias@gmail.com) to manage your account, ensure that your reply comes from the alias  address or your ticket may not be seen by our support staff.
Please note, we cannot accept email attachments at this time; please include all information in the body of your request.