2017年11月02日

Windowsのみでファイル行数をカウント

セキュリティ目的とはいえなんのスクリプトもツールも無しで
手足を奪ってから効率効率って、いうね(´・ω・`)

無いなら無いでなんとかするけど、プチっとイラっとするね。
いちいちエディタで開いて行を確認して、エクセルにコピペとかやってんですかね?

こちらを参考にコマンドプロンプトでどうにかしました。
%%iはバッチファイルに書くときの書き方なので、コマンドプロンプトに直接入力する場合は、
%を一つ減らして、%iと書いてね。




コマンドプロンプトでファイルの行数を数える方法

for /F %%i in ( filelist.txt ) do type "%%i" | find /c /v "" >> num.txt
posted by koteitan at 14:05| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年09月08日

cloc がコードメトリクスツールとして便利

windows版もあるしperl版もあるみたい。

Ubuntuなら、apt-get install clocでおk。
コマンドラインで各種メトリクスや差分、更新量がわかるので
プロジェクト管理とかにもいいかもですなぁ。
テキストやCSV,XMLで出せるので管理資料とも相性がよいかもですぞ。
VHDLにまで対応してたりしてすげぇなと思う。もうこれだけでいいんじゃないかってレベル。



posted by koteitan at 14:40| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年08月15日

lsattr

AIXだとデバイスの情報表示、
linuxだとファイルの拡張情報表示、
windowsで拡張情報表示はlsattrではなくて、attrib。

ややこいw


うまいぼうぶろぐ linuxとhttpdとperlのメモ
extファイルシステムの拡張属性

RHELのバニラでインストールだとxfsでも使えたな。
対応したのかも。
posted by koteitan at 16:37| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年08月06日

システムディスクの回復に使用できるディスクが見つかりません (0x80042414)の原因

一日悩んだので、同じ症状にハマった人用にメモを残しておきます。

事象でgoogle先生を検索すると、大抵は元のHDDよりSSDのが小さいからだ、
パーテンションを小さくしてからバックアップを取り直すとよい。 っていうのにあたると思います。
これは事実で同じエラーが出ます。
しかし私の場合は、元が120GBから360GBへの換装だったので、該当しません。
ドライブのエラーもありませんし原因は別でした。

原因

リストア先のディスクがシステムディスクとして認識されておらず
別のバスに接続されているデータドライブをシステムディスクだと認識されていたために
リストア対象から除外されているので当該のメッセージに至っていた。


何を言っているのか順番に説明します。
まず私のPCにはSSD(システム)、SSD(BF4用)、HDD(データドライブ)、USB-HDD(バックアップ用)と
4機接続されています。今回はSSD(システム)の換装なので、リストア時にSSD(BF4用)、データHDDは
リストア対象から除外するように選択しました。(USB-HDDはバックアップ格納場所なので自動除外)
そしてリストア実行すると、表題のメッセージがでます。
理由はSSD(BF4用)にリストアをしようとしているが、除外されている、という状態に陥っていました。
事象の確認のために一旦リストアをキャンセルし、コマンドプロンプトを開きます。
(システム回復メニューから、コマンドプロンプト)

(1)diskpart を実行します。
(2)list disk と入力します。

搭載されているディスク一覧が出力されます。換装しようとしているSSDがディスク何番と認識されているか
確認してください。

(3)select disk=system と入力します。

windows がシステムディスクだと認識している番号が表示されます。
換装しようとしているSSDのディスク番号以外が表示された場合は、同じ事象です。

対応方法

換装しようとしているディスクの起動順序を上げて、システムディスクと認識させましょう
マザーボードによって操作は異なるので、お使いのマザーのマニュアルを参照して変更します。
(BOOTメニューのHARDDRIVE BBS Priority のようなところです)

BIOSを変更し、再起動後、再びdiskpartからシステムディスクを確認し
換装対象のSSDがシステムディスクと認識されていればOKです。
あとは通常のリストア操作で大丈夫です。

市販のPCの場合はディスクは1機のことが多いので、こういうレア事象には至らないのかもですね。

こちらのyoutubeに大変助けられました。

posted by koteitan at 13:39| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年07月31日

Windows7をUSBHDDドライブからリストアする時の注意点

結論 HDDはUSB2.0ポートに挿しなおしておこう

USB3.0だとドライバを読ませなくてはダメなので、MBのメーカーからダウンロードしてきたりDVDに書き込んだりとか
めんどくさいので。(´・ω・`)

ちゃんとシステムイメージを含むWindowsBackUpを取っているなら、

(1)修復メディアからブート
(2)システムイメージで修復
(3)対象ドライブを選ぶ(データディスクなどは破損していない場合などは除外すると早い)

破損したわけじゃなく、Cドライブの容量がいっぱいいっぱいなので、
SSDを換装しただけですけどね(120GBから480GB)

一時ファイルとかをCのユーザー領域とかに作るソフト多いもんなー・・。

posted by koteitan at 16:34| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

bashでfindでループで

kshだと以下はちゃんと動く

hoge=0
find aaaa | while read f
do
   let hoge=hoge+1
done

if ($hoge -ne 0];
then
  echo "not zero!"
fi

bash ではこう書かないとだめ(パイプの先が別プロセスになるから)
hoge=0
while read f
do
   let hoge=hoge+1
done < <(find aaa)

if ($hoge -ne 0];
then
  echo "not zero!"
fi

aixばっかりやってるとあきまへんなぁ。(´・ω・`)

参考

posted by koteitan at 16:25| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年06月29日

grep 小技メモ

grep -n --text -A 30 -B 1 -E "A|B|C|D" * | grep -E "E|F"

-n 行番号表示
--text ええからテキストと思え
-A 30 ヒットした位置から30行後ろまで表示
-B 1 ヒットした位置から1行前まで表示
-E 正規表現


python なりなんなりでscript書けばいいだけなんだけども。( ´∀`)
まぁ、そこまでじゃないなら楽なほうがいいかと。
posted by koteitan at 14:41| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年06月28日

TOMCAT port あれこれ


(1)複数ポートで待ち受けるには

 confにあるserver.xmlを開き、<service>のタグ部分を増やせばOK。
 もともとある8080を参考に、各種ポートが重複しないようにすること。
 サービス名やエンジン名も注意する。
 各サービス毎に稼動するアプリケーションを変更したい場合(これが目的で分けると思う)
 <Host>タグのappBaseを変更すること。
 変更した名前のディレクトリを作成して、そこにモジュールを配置すればめでたくポートでアプリを
 分けられる。(1つのマネージャで複数Serviceを、みたいなのはできないっぽい。そこまで凝ったことを
 したいならWebSphereでどうぞか。)
 
 こんな感じですかね
   <Service name="Catalina">
 
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>

  <Service name="Catalina2">
 
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8444" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    <Engine name="Catalina2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps2"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>

 ポート番号を80などのwell known なものにしたときは、実行ユーザーによっては
 権限のエラーになる。
 この場合、rootで起動させるか、iptablesでポートフォワードさせて、
 <Connector>にproxyPort="80"を設定する
 
 
(2)不要ポート

 ajpが要らない場合は、コメント化しておくとポートの節約になる。

(3)shutdownポート

 デフォルトでは8005が停止ポートになっており、
 ここに"SHUTDOWN"の文字を送り込むと、tomcatが停止する。
 
 例
 echo "SHUTDOWN" | nc localhost 8005
 
 デフォルトではlocalhostのみにバインドされているが、
 認証もへったくれもないので、ちょっと気持ち悪い。
 
 対策としては、
 
 (1)ポートを変える -> スキャンされたら意味ない
 (2)停止用文字を変更する ->shutdown="SHUTDOWN"をshutdown="ICANFLY"のように推測されないものに変更する
 (3)ポート自体を無効化する ->port="-1" ただしshutdown.shが使えなくなる(killするしかなくなる)
 
 どれもこれも一長一短なので、FWやiptableなども組み合わせて守るべきなんでしょうね。
 
 
posted by koteitan at 14:44| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月31日

Azure de Tomcat

皆さんも使ってますか、Azure。すばらしいですね。
私はおもにプライベートクラウドとして使っているので、何かをサービスしたりしているわけではないですが。

tomcatとかはあっという間にデプロイできますが、
設定まわりとか、ちょっとクセがありますので、備忘録。
(Tomcat自体の設定については知ってい前提です)

(1)AppServiceからtomcatをデプロイ

(2)kazu から、tomcat-usersを修正(manager-guiのログインを触る、これは必要であれば)

  manager.xmlに対するアクセス制御は、127.0.0.1からに変わってしまうので、できないようだ。
  見えないApacheが前に居る感じなのかな。

参考にさせていただいたリンク
http://www.atmarkit.co.jp/ait/articles/0801/28/news127_4.html
http://d.hatena.ne.jp/megascus/20140413/1397365082
https://blogs.msdn.microsoft.com/azureossds/2015/09/18/accessing-the-tomcat-manager-console-on-azure-java-webapp/

(3)デフォルトでホイホイ作ると課金されてしまう(orz)ので、無料プランでやるなら下記のサイトが詳しいです。

Azureの無料試用期間終了後に無料オプションを使う
http://qiita.com/tworks55/items/6bd477b2295813a9d12f

posted by koteitan at 16:28| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月19日

Ubuntu de Apache2 その3

Tomcatとの連動について

IHS+WASやったら、プラグインの伝播で終了、だが
いちいちproxy設定いれんとあかんのな。
バーチャルホスト転送したらいらんかもだが、それはそれでtomcat側にも
いろいろアクセス制御とかいれんとだし、ややこいね。

仮想マシンでローカルオンリーだったら適当でもいいんだけど
Azure上で、グローバルIP持ってる状態なので、やっぱセキュリティには気を使いたいやね。

apache2とtomcatの連動には proxy_ajpモジュールを有効にして、
tomcat側のajpの待ちうけを有効にしておく。

参考にさせていただいたサイト


posted by koteitan at 15:08| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

Ubuntu de Apache2 その2

debian系のApache2は設定が独特で慣れんな・・・。
AIXのIHSとかだと、ひとつのファイルにダーっと書いてあるんだが、
丁寧に分かれていて、コマンドも違うので、ちょっと慣れないとなー。
install とかはめっちゃ簡単でよろしいんだけど。

・インストール/Update
 sudo apt-get update
 sudo apt-get install apache2

・設定値
 /etc/apache2

・有効になっているモジュールの確認
 a2query -m

・モジュールのオンオフ
 a2enmod モジュール名
 a2dismod モジュール名

・サービスの再起動
 service apache2 restart

・うまく起動せんとき
systemctl status apache2.service
で確認。

セキュリティの設定いれたら Headersディレクティブが効かなくて、ハテ??となったら
デフォルトでは有効じゃなかったのね、ってオチ。orz

posted by koteitan at 14:28| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月10日

watchコマンド

watchという便利なコマンドがあるのですが、なぜかcygwinには入っていないので、手動で入れなきゃだめ見たい。

Cygwin で Watch コマンドprocps
http://takuya-1st.hatenablog.jp/entry/2014/06/27/031605

watch コマンドあるぜーひゃっはー
Cygwin の watch コマンドはパッケージで提供されてないので、
探しまわっても見つからず途方に暮れて以前NCURSESをRubyで叩いて作ったことがあった。
procps というパッケージに含まれていることを知った。無知って怖い

apt-cyg install procps

これで無事にwatch コマンドが使えます。安心です。
ヒャッハー。
posted by koteitan at 16:20| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月07日

HTML5Test

HTML5を勉強しだして、つくづく思うのはIEがイケてないということだなぁ・・。
対応していない要素が多すぎる。(;´Д`)



win7+IE11だと302点しかないぞ・・・。
このblogを書いている Firefox 51.0 on Ubuntu で469点。
FireFoxも優秀ではあるが、input type=timeとかに対応してねぇのがなぁ・・。

日付入力とか時刻入力なんて普通にあるのに
早く対応しねぇかな・・。
jQueryプラグインでごまかすのもなんだかなぁ、と思います、はい。
posted by koteitan at 16:23| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年03月06日

pythonがなければjavascriptでいいじゃない

なーんにも開発環境も入ってないwindowsだけで、アクセスログを解析しろとか言われましてもね、、(;´Д`)

凝った解析はいらなかったらしいので、javascriptでちまちまやったけど、
なんだかなぁ、感。

めも
  • cscriptコマンドでjavascriptファイルは実行できる(VBscriptも)
  • ファイルの読み出しとかはActiveXに頼るしかないみたい(var fs = new ActiveXObject("Scripting.FileSystemObject");
    ) 
  • なんかjavascriptのバージョン古い気がする。Arrays.forEach(function(){})が使えん・・・
  • 入力引数もwshに頼る。( var arg1=WScript.Arguments.Item(0);)
まぁ、BATやPowerShellでやることを思えばまだ楽ですわな。
続きを読む
posted by koteitan at 16:36| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年02月21日

swap領域の変更

ファイルシステムを拡げるだけではあかんのやで・・。ヽ(`Д´)ノ

ちゃんとマニュアルにも書いてあるだろうに。
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/s1-swap-adding.html

posted by koteitan at 18:01| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2017年02月16日

Ubuntu de apache

いつインストールしたのか覚えてないが、
起動しっぱなしだった \(^o^)/

不要なものは止めておきましょ。

サービス止めて
sudo service apache2 stop

もういらねーよヽ(`Д´)ノウワァァァン!!
sudo update -rc.d -f apache2 remove



posted by koteitan at 11:38| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2016年10月13日

MIBファイルをどうにかして読みやすくする方法

snmptranslate コマンドでツリー表示させるのが楽なんじゃなかろうか。

cygwinでやってもええが、Ubuntuが楽か。インストール的に。

snmptranlate -m MIBファイル -Tp (OID)

たぶん、enterpriseのmibのimportのところで、ハァ?ってエラーになるから、

↓こんな感じのエラーね
Cannot find module (SNMPv2-SMI): At line 34 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
Cannot find module (SNMPv2-TC): At line 37 in /usr/share/mibs/netsnmp/UCD-SNMP-MIB
Did not find 'enterprises' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)
Did not find 'DisplayString' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)
Did not find 'TruthValue' in module #-1 (/usr/share/mibs/netsnmp/UCD-SNMP-MIB)

たらないMIBを一発ダウンロードする。
オフライン環境の人はちまちまとってくるしかないな・・。

sudo apt-get install snmp-mibs-downloader

あとはトリガでかってにダウンロードしてくれまっさ。

んで、/etc/snmp/snmp.conf のmibs:をコメントアウトする。
これ忘れるとうまく反映されない。
既存のMIBDIRの中身を無効にして、ダウンロードした場所へエイリアスを作っている感じだった。
詳しくは各自google先生するなりしてくだせい。
目的はMIBを読むことであって、snmo-mibs-downloader の動作確認違うからな。


http://qiita.com/Tocyuki/items/9aaae3de2858b2bfed7d

さらにサードパーティのMIBを追加する場合は以下の手順で
私の場合はSystemXのIMMのMIBが読みたかったのだ。


mkdir -p  $HOME/.snmp/mibs
echo "mibdirs +$HOME/.snmp/mibs" >> $HOME/.snmp/snmp.conf

mibファイルを$HOME/.snmp/mibsに配置する

ファイル名から拡張子を消し、全て大文字にする
ファイル名はIMM-MIBのようにする ← これはいらないかも

$HOME/.snmp/snmp.conf に以下のように追加する

mibs +IMM-MIB
mibs +IMMALERT-MIB



ややこしいのぅ。
RHEL系ではどうするんだろな。/etc/snmp/snmp.confに書くだけかなー?
またヒマがあればやってみよう。yumで一発だといいなー。

posted by koteitan at 00:19| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2016年10月09日

RHEL de Wireshark

linuxならtcpdumpでいいやん、って話だけどさ。
もう昔みたいにテキストでだーっと出るのをちまちまgrepしたりって時代じゃないのかもね。
ただ、wiresharkがインストールできる環境かどうかまではわからないので、
昔のやり方を知っていて損はなかろうよ。

炊飯器があれば米は炊けるが、無くても土鍋とかで炊けるわけだしね。

yum install wireshark
yum install wireshark-gnome


posted by koteitan at 12:34| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2013年05月24日

[javascript]便利なようで不便なようで、やっぱり便利なようで

なんでtrim()が無いんでしょうなぁ・・。('Д')
いや、まぁ正規表現とreplaceでおんなじことできるちゃできるけど
こんだけWEBとかHTML流行ってるんだから、最近のブラウザぐらいは対応してくれてもええやんか・・。
2013/05/27 対応してます(;´Д`)

trim()と同じreplaceはこう書く

replace(/^\s+|\s+$/g,'')

いや、まぁなんだかなぁと。そう思った午後でした。

2013/05/27 追記
コメントを頂いたので、調べてみた。
確かに、このblogを書きこんでいるfirefox21.0(win8)ではtrim()が作動する。(;´Д`)アレレ?
もっと調べてみると、どうやらjavascriptの1.8.1から実装されたようで最近のブラウザでは実装されているようだ。
https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/String/trim
いやはや、情報サンクスでした。


posted by koteitan at 19:25| Comment(3) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2013年05月22日

P2V -実環境を仮想化へ移動する- そのときの落とし穴

P2Vがスムーズにいけば夢の世界が。
だがしかし、現実は甘くない。
お試しで昔のthinkpadの仮想環境を作ってみたが、実際にはいくつもの障害が立ちはだかった。

http://worktoolsmith.com/2010/11/vmware-vcenter-converter-sysprep%E3%81%8C%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%86%E8%AD%A6%E5%91%8A%E3%81%8C%E5%87%BA%E3%82%8B/

XPをV化するときに必要なsysrepの入手と配置。
これは無い状態で実施するとエラーがでるので気づくかもしれない。

参考にさせていただいた記事
http://it-junkbox.cocolog-nifty.com/blog/2012/04/p2v.html
http://www.climb.co.jp/blog_vmware/vmware-5013
http://blog.engineer.adways.net/archives/21117622.html
http://blog.engineer.adways.net/archives/21117622.html

しかし、V化した後も謎の青画面、XPの認証問題、電源落ちない(ドライバ周りか)という強敵が待っている。
Pの環境が自作PCとかで通常ドライバ+通常ライセンスだと比較的簡単かもしれないが
メーカーPCだと固有ドライバ、OEMライセンスという縛り付けがきつい。
XPの認証問題はいまXpを買うとすさまじく高いので、7へアップグレードするか
8に移行しちゃうかがいいかもしんない。

もっとも安全で且つ、未来を見据えると
一回だけガマンして、手動で7なり8なりへ移行する(これは仮想環境で作る)
そして、その仮想イメージを使う。(私がT42をmacbook上のVMfusion win8proへ移行した方法)
P2Vなんて夢やったんや・・・が結局手っとり早い気がせんでもない。
個人だとV化したい環境なんて一桁台やろうしね。
企業とかで何百台とかあるとか、このOSでしか動かない!とかあると大変やね。


posted by koteitan at 10:13| Comment(0) | TrackBack(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする