いつのものように、
- DBバックアップ
- コンテンツバックアップ
- MT上書き
- mt-chechk.cgiで確認
- mt.cgi でDBアップデート
MTのいんすとーるの練習と、その他びぼうろく・・・
いつのものように、
ports でのインストールがいろいろエラーが出るなぁと思っていたが、問題は cmakeが最新じゃなかったことっぽい。
今は 3.28.1 (たぶん前は 3.14くらい)
実家に光ファイバー引いてもらってネット接続していたが、使わないと言って契約をPSTNに戻していたので、正月帰ってもネットはデザリングでiphone経由でつなぐしかなく。
で、テレビでyoutube見ようとして regzaをwifiに繋ごうとしたら、APとしては出てくるのに繋がらない。
問題は、https://note.com/hiroro571/n/n650b23e5f1e7APの名前が半角英数を使えば良いということだった。
これにたどり着くまで2時間。。。
client側を最新のものにしたら 2.6まで上がったが、サーバー側が2.xで上げずにいたら、接続できなくなっていた。
エラーを見て、configに
data-ciphers AES-256-GCM:AES-128-GCM:AES-128-CBC:AES-256-CBCを追加。
sshd へのアクセスが多すぎるので denyhosts を入れていたが、最近は sendmail に AUTH LOGIN, AUTH DIGEST-MD5,AUTH CRAM-MD5 でのちょっかいも多いので、両方一度に面倒をみてくれそうな fail2ban に入れ替えることに。
freebsd系なので、libwrap 込みでcompile されているバイナリが多いのでそちらに。
linux系は ipfw あたりのルールの追加などを動的に行うのがデフォルトのようだが、ちょっとそれも怖いかな。
ports で入れようとしたら、いろいんなバージョンの freebsdだと、0.22,1.0,1.1 といろんなバージョンが入って微妙に挙動が違いそうなので、もうこれは諦めて git で最新版を入れることにする。
pythonも3系の新しめ(3.8以降)が入っていれば良さそうなので、ありがたい。
Googleが メールについてDMARC対応を求めるという話があるようで、数は少ないとはいえ @gmail.com 宛のメールの配信が出来なくなるのは困るので、spf,dkimを入れることを考える。
と言っても、すでにspfは対応しているので、次は dkimということに。
まず opendkim のインストール。 ports はもうろくに使えないので、sourceから持ってきてインストールする。
sourceは opendkim のダウンロードサイトから。https://sourceforge.net/projects/opendkim/files/
または、githubのhttps://github.com/trusteddomainproject/OpenDKIMから。
最新のものが、2.10.3 、最終更新が 2015-05-12 ということでちょっと古すぎるので嫌な予感が。
単純に ./confugire では、やはりダメ。openssl まわりの headerファイルや libが不整合と言ってくる。
先日、openssl は 1.1.1を入れたのでこれらは想定していたが、patchがやはりあって、そのまんま
opendkim-2.10.3-openssl-1.1.1.patchがひっかかる。これを当てればいい、と思ったが、良く見ると同じディレクトリにopendkim-2.10.3-openssl-1.1.1.patch.r2がある。どうもこっちのほうが新しいので、こちらを patch -p1 で当てる。
これでも ./configure 一発とは行かず、
'./configure --disable-shared --with-openssl=/usr/local/openssl111'
で、やっと通った。
で、make と思ったら、これがまた、
WARNING: 'aclocal-1.13' is missing on your system.のようなエラーが出た。aclocalは 1.15が入っているのに、なぜかこんなエラーが?
その後、opendkimのソースディレクトリで以下を実行して設定ファイルを再生成してください:とのこと。何と、これで Makefileが再生成されて、その後は一発で make が通った。aclocal
autoconf
automake --add-missingこれで設定ファイルが更新され、makefileが再生成されるはずです。
先に動いていた amazonlinux2023 上での selenium の環境も。
ubuntuベースで同じかと思っていたけれど、いろいろどうも違うらしい。
# rpm -q --queryformat '%{VERSION}' system-release
2023.1.20230825
venv python version: 3.11.2
selenium 4.13.0
ChromeDriver 117.0.5938.149
path: /usr/lib64/chromium-browser/chromedriver
で、次のテストプログラム。
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsoptions = Options()
driver = webdriver.Chrome(options=options)
options.add_argument("--headless")
options.add_argument("/usr/lib64/chromium-browser/chromedriver")
cloude3.1, chatgpt に聞いても、
apt install chromium-chromedirverあたりを言ってくるが、python から呼び出すと、
pip install selenium
selenium.common.exceptions.WebDriverException: Message: unknown error: no chrome binary at /usr/bin/google-chromeと、ちゃんとあるバイナリファイルが無いとばかり言われて、、、いくら見ても、ちゃんとバイナリはシンボリックリンク先も含めてあるし、単体では起動するので、、、原因はよく分からず。
普通に googleで聞くと、import chromedriver_binary と言ってくるので、こちらを install。
pip install chromedriver-binaryところが、これだと、
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 121と、どうも version 121 を取ってきて、119よりも新しすぎてダメらしい。
Current browser version is 119.0.6045.159 with binary path /usr/bin/google-chrome
次の環境で:
Ubuntu 22.04.2 LTS
python(venv) : 3.10.12
selenium 4.13.0
chromedriver-binary 119.0.6045.105.0
/usr/bin/chromedriver --version: ChromeDriver 119.0.6045.159
/usr/bin/google-chrome --version: Google Chrome 119.0.6045.159
以下のサイトを参照。ありがとうございます。
https://note.com/yuu________/n/n48b3530b0fe6
いま3つのsim契約をしていて、データ容量シェアしている。使わなかった分は翌月に持ち越しできるので、容量オーバーにならないよう細かに契約料の変更をしていけば、わずかに(200円程度?)は無駄を無くせる。
で、1sim契約あたり、2,5,10,15,20 Gの契約ができて、どの組み合わせが最適(最安)か?というのを計算しておく。
3つの契約で5パターンのコンビネーションで、重複ありのケースは35通りあるようで、そのおのおののケースの契約総容量と金額を作って、金額の順にソートしていったもの。
〇が意味があるところで、×は他の契約パターンで金額が逆転してしまうので選択してはいけないケース。
パターンは、0=2G,1=5G,2=10G,3=15G,4=20G を意味している。
2023/09での金額は、2G=850,5G=990,10G=1500,15G=1800,20G=2000
家族での利用料を見ると月に 7Gから18G あたりをうろちょろしているので、
9G,12G,15G,17G,20Gあたりの契約をうろちょろすることになるか?
あんまり節約にもなってないかもですが、気持ちだけ。
パターン 総容量 契約額 1Gあたり単価(契約額/総容量)
〇 000 6 2550 425.0
〇 001 9 2690 298.8888888888889
〇 011 12 2830 235.83333333333334
〇 111 15 2970 198.0
× 002 14 3200 228.57142857142858
〇 012 17 3340 196.47058823529412
〇 112 20 3480 174.0
× 003 19 3500 184.21052631578948
〇 013 22 3640 165.45454545454547
〇 004 24 3700 154.16666666666666
〇 113 25 3780 151.2
〇 014 27 3840 142.22222222222223
× 022 22 3850 175.0
〇 114 30 3980 132.66666666666666
× 122 25 3990 159.6
× 023 27 4150 153.7037037037037
× 123 30 4290 143.0
〇 024 32 4350 135.9375
× 033 32 4450 139.0625
〇 124 35 4490 128.28571428571428
× 222 30 4500 150.0
× 133 35 4590 131.14285714285714
〇 034 37 4650 125.67567567567568
〇 134 40 4790 119.75
× 223 35 4800 137.14285714285714
〇 044 42 4850 115.47619047619048
〇 144 45 4990 110.88888888888889
× 224 40 5000 125.0
× 233 40 5100 127.5
× 234 45 5300 117.77777777777777
× 333 45 5400 120.0
〇 244 50 5500 110.0
× 334 50 5600 112.0
〇 344 55 5800 105.45454545454545
〇 444 60 6000 100.0
pythonで、組み合わせを一気につくれる関数が使えるので、それで。
comb = itertools.combinations_with_replacement('01234', 3)
まずは MT7 のアップデート。
r.5404 へ。mt-upgrade.cgi は特に問題なく実行終了。
この後、mysql 5 -> mysql 8 への変更のトライアルを、別サーバーを立ててデータを移行してやってみる。