ぼくのかんがえたさいきょうの /etc/apt/sources.list

これ # /etc/apt/sources.list deb mirror+file:/etc/apt/mirrors.txt jammy main restricted universe multiverse deb-src mirror+file:/etc/apt/mirrors.txt jammy main restricted universe multiverse deb mirror+file:/etc/apt/mirrors.txt jammy-updat…

Ruby の net-ssh で OpenSSH 8.8 以上のサーバーにアクセスできない件

Ubuntu 22.04 LTS (Jammy) の OpenSSH 8.9 な sshd に対して、OpenSSH 7.2 以降の ssh ではアクセスできるけど Ruby の net-ssh ではアクセスできない件。 理由は以下の通り。 OpenSSH 8.8 で ssh-rsa 署名が無効化された rsa 鍵は ssh-rsa 署名の他に、rsa-…

これからSwitchをお迎えする人へ

年末に向け、新しく Switch をお迎えする人も多いかと思います。そんな人へ、スムーズに使い始められるようにお勧めの準備事項をまとめてみました。 (以前、某所に投稿したやつの 2021 年版です) SDカード https://www.nintendo.co.jp/support/switch/data…

goのtviewを使う時は、

FAQ https://github.com/rivo/tview/wiki/FAQ にも書いてあるけど、 export LC_CTYPE="en_US.UTF-8" しましょう。 じゃないと、枠線がガビガビになったり行頭の1文字が書けたりしちゃいます。 もしくは、こんな感じで環境変数をセットして再実行するのでもい…

内部NLBによるパケットの書き換えのまとめ

そういえば、内部 NLB 構成ってどうやって同一セグメントのクライアントにパケットが返ってきてるんだろ? リアルサーバーからみたときに、パケットの送信元がクライアントのになる DSR だとすると返せるのはわかるんだけど、VIP (NLBのIPアドレス) 宛のパケ…

MySQLで生パスワードからauthentication_stringを得る方法

SELECT PASSWORD('mypass'); で mysql.user の authentication_string に格納されるのを得られるんですが、MySQL 8から PASSWORD() 関数がなくなったのでどうすればいいかというと、 SELECT CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypass'))))); こうすればい…

あるファイルがn日以上更新されてないか調べる方法

find -mtime を使う # 最終更新から 24 時間以上経過しているか if [[ "$(find /path/to/file -mtime +0)" != "" ]]; then echo 'OLD!' else echo 'NEW!' fi -mtime +0 がなぜ「24時間以上前」になるのか?について: http://linuxjm.osdn.jp/html/GNU_findut…

これだけ覚えればOK、rsyncのディレクトリ、ファイルパスの指定方法

ディレクトリどうしをまるごとコピーしたい場合 コピー元・先両方に末尾に / をつけて、コピー先のディレクトリまで指定する。 rsync -av /path/to/dir/ remote:/path/to/dir/ rsync -av /path/to/dir remote:/path/to とか別の書き方もあるけどパット見わか…

Ubuntu 18.04 で Postfix の multi instances の service unit を有効にする方法

Managing multiple Postfix instances on a single host に従い、multi instances の設定をした後、その service unit を用意する方法のメモ。 /lib/systemd/system-generators/* などにあるファイルはOS起動時や systemd のリロード (systemctl daemon-relo…

Apache が AH00144 で落ちる件

事象 Ubuntu 18.04 apache2 (2.4.29-1ubuntu4.12) で、apache2 プロセスが次のエラーメッセージを吐いて落ちるという連絡を受けて調べました。これはその原因と対処法のメモです。 [mpm_prefork:emerg] [pid 18633] (43)Identifier removed: AH00144: couldn…

kernel panic 時の oops メッセージを netconsole でインターネット越しに送信する

自宅サーバー (!) がちょいちょい落ちるんです。たぶんコンソールには kernal panic 時の oops メッセージが表示されてると思うんですが、モニタは繋いでないし宅内には他にサーバーもいないのでシリアル経由で送信することもできないので確認する術がなく…

Ubuntu 18.04 で OS 起動時の apt update と unattended-upgrade を抑制する方法

時間のない人向けのまとめ sudo systemctl edit apt-daily.timer sudo systemctl edit apt-daily-upgrade.timer どちらも次の内容で保存します。 [Timer] Persistent=false もしくは、直接ファイルを編集して反映してもよいです。 sudo install -d -o root -…

MySQL 5.7でクライアントプログラムがCPUを食いつぶす件

同根のバグレポートが散見されますが、ここ数ヶ月、状況をみるに修正される見込みがなさそうなので記録しておきます。 事象 MySQL 5.7 の libmysqlclient (libmysqlclient.so.20) を使用しているプロセスが、無限ループに突入して CPU (user%) を食いつぶし…

gunicornをsupervisorで制御しつつhot deployできるようにする

タイトルの通り、gunicornなWebアプリをsupervisorで制御しつつhot deployできるようにしたメモです。 登場人物 supervisor v3.3.1 gunicorn v19.9.0 start_server v0.34 unicornherder v0.1.0 envdir v0.7 の standalone版 ちなみに checkinstall で雑にdeb…

DropboxからGoogle Driveに乗り換えた

以前から Mac 複数台、Linux 複数台、iPhoneでDropboxを使ってきたのだけど、最近マシンを交換したら3台制限に引っかかって同期できなくなってしまったので、Google One を契約してるのもあり無難なところでGoogle Driveに移行することにした。 方針 Google…

Ubuntu 18.04 LTSからAMIを作る前にやらなければならないこと

AWS Marketplace の Ubuntu 18.04 LTS 20190514 からインスタンスを立てて、そのインスタンスからAMIを作る前には次のことをやらなければなりません。 ifupdownを削除する sudo apt purge ifupdown ifupdownパッケージがインストールされている状態で作ったA…

CentOS 6でPython 3でTensorFlowを使う方法、もしくはdynamic linkerとshared objectの差し替え

Python 3 CentOS 6のopensslのバージョン(1.0.1e)の関係で、Python 3.7以上はビルドが失敗します。 https://docs.python.org/ja/3/whatsnew/3.7.html The improved host name check requires a libssl implementation compatible with OpenSSL 1.0.2 or 1.…

メインマシンをUbuntu 14.04から18.04にしてみた

Ubuntu 14.04 (trusty) が 2019-04-30 で EOL になる Ubuntu 14.04 LTS Trusty Tahr Extended Security Maintenance | Ubuntu blog のと、day jobの方でも18.04 (bionic)を使う予定なので、メインマシンのtrustyをbionicにしてみた。 Ubuntu https://wiki.ub…

PythonのClickのサブコマンドをsymlinkで表現する作例

PythonのClickで command [--debug] foo [--force] [--yes]なのを実装したとして、これと同じのを command-foo というsymbolic linkを作って command-foo [--debug] [--force] [--yes]でも実行できるようにしたい作例。 https://gist.github.com/hirose31/f4…

REST API フレームワーク Connexion のススメとその作例

Python の Connexion というフレームワークとそのサンプルアプリケーションを書いたのでその紹介です。 https://github.com/zalando/connexion https://github.com/hirose31/connexion-tiny-petstore Connexion は「API (spec) First」を謳うフレームワーク…

githubのmarkdownでの長いログとかは開閉できるようにすると便利

こんな感じ https://gist.github.com/hirose31/55092c9a82f19d168981b9137a96fa2b

たくさんのホストにpingするのに便利なツールpingerを書きました

たくさんのホストにpingするのに便利なツールpingerをgoで書きました。 https://github.com/hirose31/pinger こちらから Linux, macOS, Windows 用のバイナリがダウンロードできるので是非お試しください。(手元に環境がないのでWindowsでは動作確認してい…

hardware clockがずれる件と 11 minute mode

localtimeにしていたhardware clockをなんとなくUTCにしてみたら10分ぐらいで元に戻っちゃうというお話です。環境は Ubuntu 16.04 です。結局、reboot しないとダメだったんですが、いい方法あったら教えてください>< hardware clockがlocaltimeになってい…

MySQL 5.7のmysqld --initializeと鶏卵問題

MySQLのデータディレクトリの初期化にはこれまで mysql_install_db が使われてきましたが、MySQL 5.7からは mysqld --initialize を使うことが推奨されています。mysqld --initialize は datadir 配下にファイルやサブディレクトリがあるとエラー終了します…

LXD 2.0でlive migrationしてみる

LXD

Ubuntu 16.04 LXD 2.0.0 基本的には LXD 2.0: Live migration [9/12] | Stéphane Graber's website に書いてある通りなんで、これの補足という形になります。 まず、live migrationを行う(ホストh1にあるコンテナc1をホストh2にlive migrationする場合)の…

www.twitch.tvの名前が引けない、もしくはチェックサムが0x0000のUDPパケットの件のまとめ

先に原因を書いておくと、 チェックサムが 0x0000 のUDPパケットが戻ってくると、自分の環境では「どこか」で再計算された誤ったチェックサムが付与され、チェックサムが合わないのでユーザーランドに届く前に破棄されていました。 以下、詳しく。ことの始ま…

DHCPでIPアドレスとかは設定するけどresolv.confはいぢられたくない場合

DHCPでIPアドレスとかは設定するけど /ec/resolv.conf は生成・変更されたくない場合のメモ。 Ubuntu 以下、14.04と15.04で確認。手短に言うと、 /etc/resolv.conf をsymlinkではなく実ファイルにした上で、 以下の内容で /etc/dhcp/dhclient-enter-hooks.d/…

CentOSでもh2oでOCSP Staplingしたい

h2o/1.5.2です。(たいていそうだと思いますが)中間CAから発行されたサーバー証明書の場合は、h2oではcertificate-fileで指定するファイルの内容を サーバー証明書 中間CAの証明書 という順序でcatで結合したものにします。順序があるので注意してください…

h2oでmrubyを有効にしてビルドするにはruby >= 1.9が必要

h2o/1.5.2です。h2oでmrubyを有効にするには、 cmake -DWITH_MRUBY=ON .とすればよいのですが、ビルドを完遂するにはruby >= 1.9が必要です。なぜなら、deps/mruby-onig-regexp/mrbgem.rake にこういう処理 def run_command(env, command) STDOUT.sync = tru…

マルチスレッドでgetaddrinfo(3)するとたまに Temporary failure in name resolution (EAI_AGAIN) で失敗する件

マルチスレッドでgetaddrinfo(3)するとたまにTemporary failure in name resolution (EAI_AGAIN) で失敗します。自分は↓な環境で確認しました。 CentOS 6.5 glibc-2.12-1.149.el6_6.5 こういうコードで再現します。(ruby 2.1.4で確認)なお、便宜的にrubyで…