揮発性のメモ2

http://d.hatena.ne.jp/iww/

certbotで let's encryptの証明書を 取得する

Version0.27とか0.28のときのcertbot

/lib/systemd/system/certbot.service
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true

# ださいけど更新時にnginxの一時停止をする
ExecStartPre=/bin/systemctl stop nginx
ExecStartPost=/bin/systemctl start nginx
/etc/letsencrypt/renewal/hoge.example.com.conf
# renew_before_expiry = 30 days
version = 0.27.0
archive_dir = /etc/letsencrypt/archive/hoge.example.com
cert = /etc/letsencrypt/live/hoge.example.com/cert.pem
privkey = /etc/letsencrypt/live/hoge.example.com/privkey.pem
chain = /etc/letsencrypt/live/hoge.example.com/chain.pem
fullchain = /etc/letsencrypt/live/hoge.example.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
authenticator = standalone
server = https://acme-v02.api.letsencrypt.org/directory


この書き方だと、certbotがエラーおこしたときにnginxが止まったままになるのでよろしくない

MongoDBで、起動が完了したかどうかを確認する

非力な環境では、mongod の初回起動には結構な時間がかかる。 あとDBの修復とかも待ち時間が思ったより長い。
ので、起動が完了したことを待ちたいんだけど、どうしたらいいのかよくわからない。


なのでインチキをする。
接続できる=mongodが起動完了した ということで、当たり障りのないコマンドを無限に試行する

while ! mongo --eval "db.stats().ok" >&/dev/null; do
    echo まだ起動中
    sleep 5
done

echo 起動おわった!


DHCPでIPアドレスをもらうとき、ルーティングとかDNSを設定しない

DHCPIPアドレスをもらうとき、特定のNICのときはIPアドレスだけ貰って resolv.confの書き換えとかデフォルトゲートウェイの追加とかさせたくない。

本来なら、/etc/dhcp/dhclient.conf で設定を変更できる、らしい。
DHCPにresolv.confを書き換えて欲しくない - Qiita
/etc/dhclient.confの調整
Man page of dhclient.conf

interface "eth1" {
}
interface "eth0" {
}

interface "br0" {
  request subnet-mask, broadcast-address, time-offset;
}

でも、そうはならなかった。
ちゃんと追ってないので原因はわからないけど、とりあえずインチキを設定して逃げる。

dhcpのクライアントは 実際にIPアドレスを設定する前と後にフックできる箇所が用意されているので、そこでDHCPサーバからもらった設定を無かったことにする
Man page of dhclient-script
/etc/dhcp/dhclient-enter-hooks.d/hoge を用意

if [ "$interface" = "br0" ]; then
    unset new_routers
    unset new_domain_name_servers
fi

new_なんとか という変数に設定が入ってくるので、適当に見繕ってunsetする

MongoDBで、配列の要素数を減らす

> db.controltable.findOne({ id: 123 })
{
        "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxxxx"),
        "id" : 123,
        "name" : "ほげ",
        "control" : {
                "within" : [
                        "Alpha",
                        "Bravo",
                        "Charlie",
                        "Delta"
                ]
        }
}

.control.within[] の配列の長さを短くしたい
$pop をつかい、配列からひとつ取得することで末尾を削除する
1段深いところにあるので、つなげて "control.within" と書く

> db.controltable.update({ id: 123 }, { "$pop": { "control.within": 1 }})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.controltable.findOne({ id: 123 })
{
        "_id" : ObjectId("xxxxxxxxxxxxxxxxxxxxxxxx"),
        "id" : 123,
        "name" : "ほげ",
        "control" : {
                "within" : [
                        "Alpha",
                        "Bravo",
                        "Charlie"
                ]
        }
}

TeraTermで、背景色を変更する

TeraTermで、接続時に背景色を変更できるプラグインが なんか大昔から標準で存在してた。 もっと早く使ってればよかった


プラグイン TTXCommandLineOpt.dll を使う
インストール時にこれを有効にするか、ZIPから取り出して ttermpro.exeと同じフォルダにコピーする

次回起動時より次のコマンドラインオプションが使用可能になる

/FG 文字色の変更
/BG 背景色の変更
/SIZE 画面サイズの変更

使い方

localhost:22 /BG=64,0,0 /SIZE=160,24

f:id:iww:20201021132211p:plain


ファイル詳細: /trunk/TTXSamples/TTXCommandLineOpt/TTXCommandLineOpt.c (head) - ttssh2 (svn) - Tera Term - OSDN


暗い赤 /BG=64,0,0
暗い緑 /BG=0,64,0
暗い青 /BG=0,0,64
暗いシアン /BG=0,64,64
暗い紫 /BG=64,0,64
暗い黄 /BG=64,64,0
暗い灰色 /BG=64,64,64

SDカードリーダー


Amazon | メモリカードリーダー K型 Lightning/TYPE-C/USB/Micro-USB 4-in-1 SD/TFカードリーダー 保護カバー付き

間違いなく日本ではないどこかの知らないメーカー
性能はともかく、形が名状しがたくめちゃくちゃにキモい
日常使いはしたくないけど 一発ギャグ用にほしくなった