2022-03-01から1ヶ月間の記事一覧
Rustで文字列の定数を定義したくなることがある。 文字列定数の実現方法にはいくつかあるがmatch構文の恩恵を受けられるenumを使うと良い場合がある。 ところがRustのenumはC言語のそれに近く、enum variantの値として整数リテラルを設定することはできるが…
AES256の暗号鍵やシークレットソルトなど、ランダムなbyte列をシェルでサクッと欲しい時がある。 head -c NUMで指定バイト分だけ取れるから、base64にパイプで流せば良い。 次のコマンドはランダムな32 byteを base64エンコードして出力する。 head -c 32 /d…
不要なIAMユーザを調べるために、そのIAMユーザのキーが最後に使用された日時と共に一覧を取得したいことがある。 このワンライナーはIAMユーザ名、IAMキーのID、最終使用日時を一覧出力する。 キーを逐次的に調べているので完了するまで時間がかかる。 大量…
SQLite3の新しめの仕様を使いたかったから、自分でビルドする必要があった。 FROM debian:buster RUN apt-get update && \ apt-get install -y git gcc make tcl && \ git clone --depth=1 -b version-3.38.1 https://github.com/sqlite/sqlite.git && \ cd …
全リージョンをチェックするから、応答が返ってくるまでしばらく時間がかかる。 落ち着いて待て。 1件も行が表示されなかったら、全てのリソースが準拠状態にある。 while read REGION; do aws configservice describe-compliance-by-config-rule --region $…
terrafromで以下のようなエラーメッセージが表示されることがある。 │ Error: Invalid legacy provider address │ │ This configuration or its associated state refers to the unqualified provider "aws". │ │ You must complete the Terraform 0.13 upgr…
terrafromなどでRDSインスタンスを変更すると次のメンテナンスウィンドウで反映されるよう予約されるだけで、即座に反映されないことがある。 この状態でAWSコンソールから確認すると「保留中の変更」に表示される。 これは次のコマンドでメンテナスウィンド…
Catalyst 3650でバッファ溢れを起こしてパケットが大量にドロップされていたからチューニングを行う必要があった。 バッファの仕組みと必要なチューニングについてメモする。 Main Memory領域とI/O Memory領域 まず、物理メモリDRAMはCisco IOSの動作に使わ…
そこそこの規模のネットワークにおいて、インターネットへ向かうポートには多量のトラフィックが合流してパケットが破棄されてしまうことがある。 とある環境では上りのトラフィックのパケットだけがインターネットへの出口で大量にドロップされていた。 こ…