naoki86star

インターネットの片隅でなにかしら書いてみる

tools

touchコマンドの-rオプション

jacksonというjsonライブラリを使っていてシリアライズしたテキストをファイルに保存していたとき、TRUNCATE_EXISTINGをつけ忘れて、上書き時に元のテキスト長より短かった時に、末尾に前のテキストが残ってしまっていた。書き込んだファイルの読み取りではj…

docker image hosting in nexus repository

dockerイメージのプライベートホスティングするため、nexus repository使ってみている。mavenリポジトリとかrawイメージを合わせておいておけるその組み合わせが今の自分にはいい。今困っていることは、特にdockerイメージのストレージが肥大しやすい、とい…

メールフィルタ機能(UNIXサーバでの思い出話)

昔のunixでサーバ一台にアカウントがたくさん登録されていたりしてls -l /homeするとユーザー名がリストされたりあるいは/etc/passwdとかでユーザー一覧とか見れたり。そのサーバがemailを受信できるようになってると、各ユーザーはmailコマンドとかでメール…

stackoverflow on sbt compile

sbtにおいてscala 2.12.4を使う限り .javaと.scalaソースを同一ディレクトリに配置してコンパイルするとstackoverflowする場合(環境)があるのを知っている。普通、 .javaと.scala混合ソースではディレクトリ単位でsrc/main/scala/... src/main/java/...と…

proguard / sbt-proguard

proguardというのは、javaのコードを難読化してくれるソフトウェア。 お仕事でantタスクで動いていた成果物をありがたく使わせてもらっていたがコンパイル環境とか変化に対応する必要があって、基本的なところから調べる・覚える。元の環境はant with jdk8。…

(sbt-plugin) sbt-native-packagerのメモ

先日来launch4jを調べていたけども、javaでの実行可能ファイル化の方法には、java8からjavapackagerなるものが存在したようで、こっちがいいかとちょっと調べてみてる。直接使ってみるところからやりたいのだけども、引数makeallコマンドとか試しに叩いてみ…

launch4jの覚書

launch4jという、javaの実行可能なjar形式を実行可能Windows exe形式にラップしてくれるソフトウェアがある。まず基本的な使い方は、UIを起動して、javaの実行環境としてのjarファイル、実行可能Windows exeの出力ファイル名を指定し、出力実行すると、設定…

shc - "Generic shell script compiler"

最近macOSに触れる羽目になりました。なんかその過程で、shcというコマンドの存在を知りました。shell scriptを実行可能ファイルに変換してくれるツール・unix系コマンドです。その仕組み上当然別に速度が速くなるものでもなくおそらく多くの場合わざわざrea…

OpenNDS試してみた

OpenNDSって? Captive Portalを実現できるOSS。Captive Portalとは、インターネット接続をサービスを提供してくれるショップとかホテルとかで接続の際に最初にブラウザが開いて表示されるサイトのことで、許可されたのちに*1インターネット接続サービスが使…

domain-nameベースのルーティング(インタフェース選択) on Linux

やったこと ドメイン名によって経路(インタフェース)を選択的にすることができるのかどうか試してみた。家の環境で、通常のインターネットにつなぐ経路とVPNのトンネル経由の経路が利用できるときに、特定のドメイン名の場合には希望するインタフェースか…

OpenConnect on Raspberry Pi3

きっかけ まだ、いくらか使っているインターネット上のVPSと自宅piをOpenVPNというVPNソフトでつないでいたりする。が、それとは別に、つい先日OpenConnectというLinuxで動かせるVPNクライアントがあるのを知った。 元々はCISCOのアプライアンスが設置するVP…

リモコン操作をraspberry piに伝えることができた

raspberry piの助けを借りて部屋の中でリモコンを使った制御ができる準備をした話。~出来合いの、ボタンがいくつか並んでるような汎用のリモコンからraspberry piを通じて任意のコマンドを起動できる仕掛けまで、この話題でよく紹介されてる手順に今々必要…

maxminddb-reader by clojure

...単にjavaメソッド呼び出してるだけレベルだけども、今度はmaxminddb試してみておく。Getting Startedで入れた環境で、Maxmind-DB-Reader-javaのinstall情報を元に.clojure/deps.ednに追記してclojure起動する。 :deps { org.clojure/clojure {:mvn/versio…

maxminddbのupdateのこと

こういうこととかこういうこととかでMaxMindってところのIPデータベースとそのライブラリを使わせてもらったりしてます。ubuntuもPPAってのを追加することでapt経由でライブラリインストールできるので手間いらずで使えたりします。 が、IPデータベースであ…

JLine

voltdbのコードをサーフしていて、sqlcmdがJLine | jline.github.ioての使っていると知りました。jlineての初めて知りましたがいろいろよそでも使っていそう使えそうです。 jline2のほうに、見た目わかりやすいexampleがのほうにあったのでそれをちょっと動…

sflowtool のコードをいじってみる(2)

今日はsflowtoolに、マッチングフィルタの組み込みをやってました。通常ですとデータベースにインポートして集計なり、sflowtool -lの出力をgrepするなりで、フィルタ・集計の機能は外部の専用機能にまかせるのが妥当です。けども結構フィルタも都度考えて書…

sflowtool のコードをいじってみる

sflowtoolにはtcpdumpで保存したpcapから読み込むオプションあります。個人的にはこれが非常に便利と思っていてよく使います。pcapファイルは多くの場合サイズが大きくなるので残そうとするなら圧縮しておくこと多いと思います。なのでこんなコマンドライン…

Link Layer Discovery Protocol

vMXでevpn-vxlan試していたときとか、ICMP58再現のときにcumulus使ってみていたら、LLDPってプロトコルが脇からよく目に入ってきた。ナンデスカこれってことで調べた。 junosの設定exampleみるとよく set protocols lldpとか入っていた。cumulus(3.7.0)つな…

gobgp + flowspec by nodejs

python使ってgobgpにflowspec投入するを試してみた後、今度はnodejsではどうか?やってみた。nodejsはサーバサイドをスクリプトだけで構築するのに選択肢のひとつに持っておくといいかなぁ、と考えているので。 最初、@grpc/proto-loaderとゆうのを使えば co…

junos-eznc

vmxも試してた流れで、今日は、junos用のpythonライブラリを味見。ubuntu18側で、 pip3 install junos-ezncvMX側で、 root# set system services netconf ssh [edit] root# set system login user admin authentication plain-text-password New password: R…

eve-ng用のhda.qcow2をVagrantから作る

eve-ngというネットワークエミュレーション仮想環境SWが公開されてます。そこには自作のVM(qemu)をaddonの形で登録できたりします。VMの作成手順などもかかれていたりしますが、基本はkvmとかのVMファイルを変換する感じだと思います。 自分は、あまりXwindo…

ANSI COLOR表示するのをc言語で書く

grcはpythonスクリプトで構成されていたみたいだけども、sflowtool*1みたいな出力大量なものの場合に、色出力部分は魔改造(すなわちc言語での直接改造)したほうがいい場合がある。 なにも気にしないでエスケープシーケンスの色制御コードを追加すればそれで…

traceroute に色をつけてみる

linuxにgrc ってコマンドがあるの知って、それに関連して思ったこと書きだします。これ使うとtraceroute の結果にお手軽に色つきます。# grpcではない MSDOSのころから、console上のテキストに色がつくのは楽しかった。エスケープシーケンスってのはなにで仕…

go-carbon の Carbonlink の進歩に期待する

go-carbonでの図のCarbonlink が*.wspでなくcacheを参照しているのがいい、と思っていた。ここの部分はまだチャレンジ中な感じみたく、いまのところあまりクリーンヒットできる場面がなさそう。cacheの実装がシンプルなkey-valueストア+αな感じで、metricが…

unix dateコマンド

unixていうかlinuxの今のdateコマンドである程度の日付け計算できることいまさら初めて知った。単独でyesterdayとか1days agoとかは知っていたけども、YYYYmmddを指定してそれを起点に計算してくれたんだ。*1 nao@Tokyo:~$ date --date="2hours" Thu Jul 4 2…

openpyxl

sqliteでクエリーした結果をいくらか保存しておくようにxlsxに出力しておきたくなってきた。 ずいぶん前にiron pythonでCOM経由で処理してくれるモジュールあったような記憶があるのですが、遅かったしWindowsのみで動いていた気がします。*1 ubuntu(linux)…

sqlite3 + maxminddb on Windows

sqlite3にmaxminddbを組み合わせて使っていたりしてます。sqlite3からmaxminddbを参照できるようにextentionを作ってます。*1GeoLite2のIPデータベースを使うということで察せられると思いますが、ここで集計しようとするsqlite3のデータベースはフローデー…

(備忘)exaBGP

exaBGP4.0.xを動かしてみようとしたら、いくつかつまずいたのでメモ*1 md5-passwordを平文で入れるときは、md5-base64 false;が必要 サービス起動スクリプトにいれておくといいのだけども以下が必須(パスは環境に合わせて)*2 mkfifo /run/exabgp.in mkfifo /…

maxminddbのIPデータベースのカスタム作成

maxminddb ? maxminddbはkeyをIPアドレスに特化しているデータベースといえばそうであり、だからまずはGeoLite2のような中身を詰め込んで*1あるdistributionにフォーカスがあたります。前から関連で見つかるこれを見て、IPに関連づいたlookupファイルを自作…