技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

2018-04-01から1ヶ月間の記事一覧

各行の先頭に「> 」を付けるスクリプト

各行の先頭に「> 」を付けるperlスクリプト addQuote.pl を作成した。例えば、 aaa bbb ccc ddd という文章に対して、このスクリプトを適用すると、以下のようになる。 > aaa > bbb > ccc > ddd 任意の文章に対して、引用として「> 」を付けたい場合に使用す…

キー操作だけで素早くアプリを起動する。

今日はWindows上での操作の小ネタについて書く。具体的には「ファイル名を指定して実行」を利用して、キー操作だけで素早くアプリを起動する方法について書く。 まず、以下の設定を行う。(例として sakura エディタを起動する時のものを挙げる。) アプリのシ…

指定したディレクトリ配下のファイルから改行コード LF を探し出すスクリプト

引数で指定したディレクトリ配下のファイルから改行コード LF を探し出すperlスクリプト detectLF.pl を作成した。 使い方は簡単で、「perl detectLF.pl "ディレクトリ"」を実行するだけ。 use strict; use warnings; my $dir = $ARGV[0]; if(! -d $dir) { d…

指定したディレクトリ配下のファイル名やディレクトリ名を全て表示するスクリプト

指定したディレクトリ配下のファイル名やディレクトリ名を、再帰的に全て表示するperlスクリプト printAllUnderDir.pl を作成した。 use strict; use warnings; my $dir = $ARGV[0]; if(! -d $dir) { die "Invalid argument."; } $dir =~ s|\\|/|g; getFileL…

JavaのExecutorServiceで簡単マルチスレッド

Javaでマルチスレッドなプログラムを書く場合、Java1.5から導入された ExecutorService を使うと簡単に書ける。 以下は ExecutorService を使った簡単なサンプルプログラムである。 import java.util.Date; import java.util.concurrent.Callable; import ja…

指定されたディレクトリ配下のアーカイブファイルを再帰的に展開するスクリプトを作成した。

指定されたディレクトリ配下にあるアーカイブファイルを再帰的に展開するperlスクリプト extractRecursively.pl を作成した。 使い方は簡単で、「perl extractRecursively.pl "ディレクトリ"」として実行するだけ。 use strict; use warnings; use Archive::…

Zabbixについて

OSSの運用管理ソフトZabbixについて調べる機会があったので、ここにメモしておく。 ラトビアのZabbix社が開発している。 サーバ側のフロントエンドはPHPで、バックエンドはC言語で書かれている。 DBはpostgresやMySQLなどからいろいろ選べる。 機能毎にプロ…

ファイルに書かれた文字列で検索するスクリプト

ファイルAに書かれた文字列で、ファイルB内を検索するperlスクリプト(findStr.pl)を作成した。使い方は簡単で「perl findStr.pl "ファイルA" "ファイルB"」で実行する。例えば、ファイルAの中身が aaa bbb ccc となっていて、ファイルBの中身が aaa ddd eee …

コマンドプロンプト上でのダブルクォート(")の挙動

Windowsのコマンドプロンプト上でのダブルクォート(")について、ちょっと分かりにくい挙動があったので、ここにメモしておく。 例えば、コマンドプロンプト上で、 test.bat "abc def" は問題なく実行できる。 しかし、 test.bat "abc def" < は「コマンドの…

SNMPのoctet string型のデータの中に制御文字は入り得るのか?

SNMPには文字列を表現する型としてoctet string型がある。この型のデータの中に改行コード等の制御文字は入り得るのかについて調べてみた。 まず、RFCを見てみた。 RFC 2578 - Structure of Management Information Version 2 (SMIv2) The OCTET STRING type…

ファイルの中身を16進ダンプするスクリプト

引数で受け取ったファイルの中身を16進ダンプして、出力用のファイルに出す perl スクリプトを作成した。どういう時に使うかというと、例えば、入力に16進ダンプの文字列を受け付けるプログラムを使いたい時に、このスクリプトで対象の文字列を16進ダンプに…

DNSサーバのMXレコード

DNSサーバのMX(Mail eXchange)レコードについて、ちょっと調べる機会があったので、理解したことをここに書いておく。 DNSサーバのMXレコードは、メールソフトがメールを出す時に、宛先のメールサーバの情報を知るためにある。DNSサーバのMXレコードの形式は…

Javaでsnmpwalk

Javaでsnmpwalkするソースを作成してみた。ちなみに、snmpwalkとは、内部でsnmp get-next-request を繰り返して、SNMPエージェントからMIBツリー配下のMIBを次々取ること。 SNMPの通信のところを一から作るのは難しいので、snmp4j ライブラリを使用している…

負数の2進表記について

以前、負数の2進数での表現(いわゆる2の補数)の考え方がピンと来なかった。いつからか以下のように理解するようになり、それなりにイメージできるようになった。 例えば、1バイトのデータだったら、負数の最大値は 11111111 である。(負数なので先頭ビットは…

byte型とint型の変換

以前、Javaのbyte型とint型との変換について勉強するために作成したテストコード。 public class TestByte { public static void main(String[] args) { // Test1 byte byteData = (byte) 0xC7; // 11000111 // If there is no "(byte)", 0xC7 is looked as …

バイト列と16進ダンプとの変換

バイト列と16進ダンプ文字列との変換について勉強するために作成したテストコード。 binToHexString()は、バイト配列を16進ダンプ文字列に変換するメソッドで、hexStrToBin()は、その逆を行うメソッドになっている。 public class ChangeBinHex { public sta…

引数で指定したディレクトリ配下から、BOM付きのファイルを探してくるスクリプト

引数で指定したディレクトリ配下から、BOM(Byte Order Mark)付きのファイルを探してきて、そのファイル名を表示するperlスクリプト findBOM.pl を作成した。 使い方は簡単で、「perl findBOM.pl "検索対象ディレクトリ"」で実行できる。なお、Windows環境で…

keystoreとtruststore

たびたび目にするJavaのkeystoreとtruststore。よく忘れてしまい、そのたびに調べるので、、ここに概要を書いておく。 keystore:自サーバの証明書(公開鍵を内包)と、それに対応する秘密鍵が入っている。自サーバの証明書が証明書発行局(CA)から配布されたも…