dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

ECS関連をAWS CLIで列挙したり、一括操作したり

複数のリソース クラスタ名とサービス名をタブ区切りで列挙 出力の1列目にクラスタ名、2列目にサービス名が表示される。 aws ecs list-clusters --output text | cut -f2 | xargs -L 1 -P 16 -I {} aws ecs list-services --cluster {} --output text | sed …

AWS CLIの出力を改行せずに使うときはcarriage returnに気をつけよ

何が問題なのか AWS CLIの出力の先頭にはcarriage return 0x0Dが含まれている。 シェルスクリプトやワンライナーにおいて、何かの出力につづけて改行することなくAWS CLIの出力を繋げようとすると、先頭に復帰して上書きしてしまう。 イメージ echo "before …

Windows App SDKのメモ

見つけづらいものをここにメモ WinUI 3 Galleryには存在するが、ここには存在しないアイコンがある。 FontIconで使えるアイコン オーバーレイしてフォームを登場させたい。 -> SplitViewをOverlayで使えば実現できそう SplitViewは横方向にしか隠せない。縦…

macOSのmDNSResponder奮闘ログ

くそ紛らわしいことに、macOSのmDNSResponderは2つある。 - デーモンプログラム - 停止不可能なシステムコンポーネント 以下ログ ただし、macOSの場合、mDNSResponderはDNS解決を行う際にローカルDNSキャッシュを利用することがあります。 ここで、ローカルD…

lsofコマンドの活用

ファイルをつかんでいるプロセスを確認したり、listenポートを確認したりする際に使うlsofコマンドは意外に高機能であり、スクリプトで役立つ。 lsofの出力をパイプでつないでこねくり回す前にlsofのmanを読め。 絞り込み いくつものオプションで絞り込みが…

AWS CLIでリソースを一覧取得

ECS関連 多いから別ページに移動した ECS関連をAWS CLIで列挙したり、一括操作したり - dullwhaleのメモ帳 Kinesis Firehoseのストリーム一覧を改行区切りで出力 xargsで使うことを想定 aws firehose list-delivery-streams --query 'DeliveryStreamNames[*]…

Docker on LimaではUDPのポートフォワードが簡単にできない

LimaのポートフォワードはSSHトンネリングによって実現されている。 次のコマンドでトンネルを作っているのと同じイメージ ssh -L だからTCPのポートフォワードは素直に実現できる。 一方で、UDPポートは通信が虚空に消え、ICMPで到達できないこと表すtype 3…

mDNSを殺す

マルチキャストDNS(mDNS: multicast domain name system)という無駄な仕組みがある。 mDNSはDNSサーバが存在しない特殊なLAN内において、ホスト名の名前解決するための仕様であり、RFC 6762で定義されている。 DNSサーバが利用できない異常な環境は普通な…

(古い情報)Raspberry Pi 3 Model Bでarm64のdocker-composeを起動するまでの作業ログ

注意 この文章は 2021/08/10 に書いたメモをサルベージしたものである。 現在同じ手順を実行しても失敗する可能性が高い。 必要になったら調べ直せ。 より新しい手順を書いた↓ Raspberry Pi 3 Model BにRaspberry Pi OS 64bitをインストール - dullwhaleのメ…

個別の記事を作るほどでもないシェルのスニペット・アイデア

お決まり シェルスクリプトの先頭に書くやつ #!/bin/bash set -euo pipefail readonly SCRIPT_DIR=$(cd $(dirname $0) && pwd) 定番のフィルタコマンド そのgrepは本当に必要? sedを上手く使うとgrep | sedのような事前のgrepが不要になる場面も多い。 例え…

Golangで性能を気にしなきゃいけないときに見るメモ

stringはshallow copy stringの実体は「文字列実体があるbyte配列のアドレスとbyte長を持つ構造体」である。 単純な代入によるコピーでは実体のbyte列のコピーは行われない。 大きな文字列を別の変数に代入する場合に心配しなくてよい。

Ubuntuへ新しめのgolangをインストールする

2023/04/08現在、Ubuntu 20.04の本家のaptリポジトリではgoパッケージの更新が遅れている。 本家のaptパッケージのgoバージョンは1.13だが、go公式のlatest stableは1.20.3である。 新しめのgoバージョンをインストールしたい場合、サードパーティーのリポジ…

Windows10の簡素なチューニング

低スペックのマシンではWindows10のデフォルトの構成だとまともな作業ができない場合がある。 いくつかの対策をメモしておく テレメトリを無効化する 匿名データを収集してMSに送信する機能がある。 この機能はスペックに余裕がないPCでは無視できない負荷と…

FireFoxキーボードショートカットメモ

よく使いそうなものだけピックアップ タブを閉じる Ctrl + F4 タブ左移動 Ctrl + Page Up タブ右移動 Ctrl + Page Down Firefox のキーボードショートカット | Firefox ヘルプ

AWS CLIを用いて様々なサービスでAWSアカウントの一覧を取得

Organization配下の全てのAWSアカウントのIDを取得 aws organizations list-accounts --query 'Accounts[].[Id]' --output text 特定のスタックセット内の全てのスタックインスタンスについてAWSアカウントのIDを取得 aws cloudformation list-stack-instanc…

ネットワーク機器のconfigの基礎の基礎

Cisco ISO モード変更 モードが2つある ユーザモード(>) 特権モード(#)enableで入る 設定変更 上のモードとは別にconfigを弄るときのモードがある - グローバルコンフィグレーションモード - 特定(詳細)コンフィグレーションモード 特権モード(#)の…

AWS CLIで合っているはずなのにARNが間違っていると言われたら--regionオプションを付けてみろ

WAFv2などのリージョンがグローバルだったりするリソースでは、AWS CLIにリージョンを指定する必要がある。 % aws wafv2 untag-resource --resource-arn arn:aws:wafv2:us-east-1:012345678910:global/webacl/global-acl/foo --tag-keys "bar" An error occu…

grepで特定の文字列を含む/含まないファイルだけをフィルタしたい

パイプで左からファイルのリストを受け取るものとする。 特定の文字列を含むファイルを抽出する grepの小文字エル l オプションを使う。 出力結果はファイル xargs grep -l 'foo' 特定の文字列を含まないファイルを抽出する grepの大文字エル L オプションを…

MacBookセットアップメモ

MacBookを初期化したとき用に MacOSを最新化する 後から更新するとインストール済みアプリが動かなくなったりするから最初にやっておく。 MacOSの設定 システム設定を開き、各種設定していく。 Touch IDとパスコード > 指紋を追加 指の怪我に備えて2本以上…

OpenSSHクライアント更新後にホストへ急に接続できなくなった

原因 Unable to negotiate with HOSTNAME port 22: no matching host key type found. Their offer: ssh-rsa OpenSSHの最近のアップデートでSHA1 + RSA署名がデフォルトで無効化された。 SHA-256/512 + RSAの署名はデフォルトでサポートしている。 サーバと…

ECSに関する用語の自分用まとめ

Containerが一番粒度が小さい単位。稼働しているコンテナ実体。 ContainerはTaskという単位で動かせる。1 Taskに複数Containerを定義できる。 例えば1 TaskにNginxコンテナとWebアプリケーションコンテナを定義できる。 Taskの定義はTask Definitionで設定す…

LaravelでFatal error: Uncaught RuntimeException: A facade root has not been set.とかいうエラーが出たら一番最初に構文エラーを疑え

というか静的解析しろ

GnuCashで決算

今期の決算 決算整理仕訳を行う よくありそうなのが費用の前払い。 来期分を前払* (資産)へ振り替える。 収益と費用を0にして損益に振り替える メニューバーのツール > 決算をクリックする。 ダイアログが出てくるから、「決算日」を期末に、「収益合計」…

あるディレクトリ以下の全てのファイルから特定の文字列を含む行を削除したい

export LANG=C find . -type f -print0 | xargs -0 sed -i -e "/needless-string/d" 最初のexport LANG=Cは RE error: illegal byte sequence というエラーを吐かれないようにするための対策 macの場合はsedをgsedに変えて実行する。GNU版とBSD版の動作の違…

回線事業者とプロバイダの違い

回線事業者は物理的な設備を提供し、プロバイダはインターネットへの接続を提供する。 同じ会社が回線事業者かつプロバイダであることもある。 プロバイダが別会社の回線契約もまとめてやってくれるサービスもある。 回線事業者は光、ADSL、ケーブルテレビな…

Fargate強制再デプロイスクリプト

稀にFargateの基盤の更新で、コンテナが強制再起動される旨の通知がくる。 Your application running on AWS Fargate will automatically be updated soon コンテナは基本的に落ちることを想定して作るから、基本的に放置して良い。 ただし、事情によっては…

aws-nukeのconfig雛形

aws nukeを使ってAWSアカウント内のほぼ全てのリソースを削除したいが、一部削除できない/してはいけないリソースがある。 粒度が荒いが、削除しないためのconfigファイルの雛形をメモしておく ファイル名はconfig.ymlとする regions: - us-east-1 - ap-nort…

ワンライナーで使えるアイデア

最初の1行だけ飛ばしたい CSV/TSVファイルなどを処理するとき、最初のヘッダ行が邪魔になることがある。 先頭の行をskipしたい tail -n +2 通常、パイプで繋いで使う。このコマンドは「2行目以降を表示」する。

Node.jsのLambdaを棚卸ししたい

複数のAWSアカウントについて複数のリージョンでNode.jsを使っているLambdaリソースを確認したい事態が発生した。 原因はNode.jsランライムのAWS上でのサポート終了である。 1つのAWSアカウントだけなら、以前メモしたコマンドスニペットで良いが、アカウン…

RDS for MySQLでMySQLアカウントを別のインスタンスにコピーする

RDSインスタンスの移行などでMySQLアカウントをパスワード、権限そのままコピーしたいことがある。 #!/bin/bash set -euo pipefail source .env echo 'SELECT User, Host FROM mysql.user' | \ mysql -uroot -p${OLD_DB_PASSWORD} -h ${OLD_DB_HOST} | \ sed…