|
|
| |||||||
| |||||||||
巻き戻し中。
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2020-07-05(日)
一周回って [長年日記]
_
冗長化?
freevrrpdとrelayd組み合わせてWebと外向けDNSの冗長化が何とかならんかと時間を見つけては格闘していたのだけど、諦めた。
1.freevrrpdはルータ越えるとゴキゲンがよろしくない
2.relaydだと、DNSはプロキシモードじゃ無いとちゃんと動かないがそれだと問い合わせ元が全部プロキシになっちゃうのでaxfrとかの制御がアレ
3.DSRモードならアクセス元制御できそうなので色々試したけどbindはDSR方式には対応出来なさそう
なので、鯖2台+LB2台のトラディショナルな冗長構成はどうやら無理。
Linuxで別のLB建てるのも面倒だしなぁ。
内部から外向きのDNSとか串はrelaydで問題ないと思うし、DNSは実際そうしてる。
_
でもって
余計な事をしないでaliasだけを切り替える「なんちゃってvrrpd」を作ったついでに、FreeBSDで完全にdaemonとして動くようにしてみた。
#!/bin/sh
# This is "Fake VRRP daemon"
# By H.Uekusa 20200705
# Put "fakevrrpd" into /usr/local/etc/rc.d
# such as below
# and do
# "service fakevrrpd enable"
# "service fakevrrpd enabled"
# "service fakevrrpd start"
#----------------------------------------------------
# #!/bin/sh
# # -*- coding: utf-8; mode: shell-script; -*-
# # insert `fakevrrpd_enable="YES"' in /etc/rc.conf
# # Use with fvrrpd
# # By H.Uekusa 20200630
# #
# # PROVIDE: fakevrrpd
#
# PROG="/usr/local/etc/fvrrpd"
#
# . /etc/rc.subr
#
# name=fakevrrpd
# rcvar=fakevrrpd_enable
# procname=/bin/sh
# pidfile=/var/run/fvrrpd.pid
#
# start_cmd="${name}_start"
# stop_cmd="${name}_stop"
#
# load_rc_config $name
# : ${fakevrrpd_enable:="NO"}
#
# fakevrrpd_start () {
# echo "Starting fakevrrpd"
# $PROG -d
# }
#
# fakevrrpd_stop () {
# echo "Stopping fakevrrpd"
# $PROG -k
# }
#
# run_rc_command "$1"
#----------------------------------------------------
#
############### configuration valiables ################
CAT="/bin/cat"
GREP="/usr/bin/grep"
IFCONFIG="/sbin/ifconfig"
KILLA="/usr/bin/killall"
LOGGER="/usr/bin/logger"
PING="/sbin/ping"
NC="/usr/bin/nc -z -w 1 " # and $MASTER and port
RESTART_NAMED="/usr/sbin/service named restart"
#
VIP="10.2.3.4"
MASK="netmask 255.0.0.0"
MASTER="10.2.3.5" #Actual master IP address
IF="vmx0" #Physical interface name in ifconfig
PORT="80" #Monitor for back up the master
WAIT_LIMIT="60" #Seconds
#
PIDFILE="/var/run/fvrrpd.pid"
LOGNAME="fake_vrrpd"
########################################################
#
######## main module ########
main () {
STAT_PREV="0"
PID=`echo $$`
echo $PID > $PIDFILE
if [ "$1" == "verbose" ];then
LOG="echo"
elif [ "$1" == "daemon" ];then
LOG=`echo $LOGGER -is -t $LOGNAME`
else
exit 3
fi
$LOG "Fake vrrpd PID is $PID"
while [ 1 ]; do #Infinite loop
$PING -c1 -t1 $MASTER >/dev/null 2>&1
STAT_NOW=`echo $?`
if [ $STAT_NOW != $STAT_PREV ];then #Found change
if [ $STAT_NOW != 0 ];then #Change is master down
$LOG "Master $MASTER down detected! I will become the Master"
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLED=`echo $?`
if [ $MY_VIP_ENABLED != 0 ];then #My VIP is not set
$PING -c1 -t1 $VIP >/dev/null 2>&1
STAT_VIP=`echo $?`
if [ $STAT_VIP != 0 ];then #Another VIP is not found
$LOG "I become the Master!"
$IFCONFIG $IF alias $VIP $MASK
$LOG "Restarting named"
$RESTART_NAMED
else
$LOG "The Master seems down, but there is another Master ??"
$LOG "To avoid conflict, do nothing."
fi
fi
else #Change is master back up
$LOG "Master $MASTER interface back up detected! Waiting for enabling service at $PORT."
NC_STAT="1"
STAT_COUNT="0"
while [ $NC_STAT != 0 ];do
$NC $MASTER $PORT
NC_STAT=`echo $?`
echo "Status $NC_STAT"
echo "Count $STAT_COUNT"
if [ $STAT_COUNT -gt $WAIT_LIMIT ];then
$LOG "Waiting for enabling service at $PORT timed out $WAIT_LIMIT sec, aborting."
exit 5
fi
STAT_COUNT=`expr $STAT_COUNT + 1`
sleep 1
done
$LOG "Master $MASTER service back up detected! I will become the standby"
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLE=`echo $?`
if [ $MY_VIP_ENABLE = 0 ];then #My VIP was set
$LOG "I become the standby! Removing alias $VIP"
$IFCONFIG $IF -alias $VIP
$LOG "Restarting named"
$RESTART_NAMED
else
$LOG "VIP $VIP is already removed or not set, Nothing to do."
fi
fi
fi
echo "IF Status $STAT_PREV->$STAT_NOW"
STAT_PREV=`echo $STAT_NOW`
sleep 1
done
rm -f $PIDFILE
exit 4
}
#############################
#
###### check arguments ######
if [ "$1" == "-d" ];then #Run as daemon
LOG=`echo $LOGGER -is -t $LOGNAME`
$LOG "Fake vrrpd is starting as daemon"
if [ -f "$PIDFILE" ];then #Exist PID file?
$LOG "There is PID file at $PIDFILE,I'm exiting"
$LOG "If you would like to start forcibly, Use -k option first"
exit 2
fi
$0 -vd >/dev/null 2>&1 &
elif [ "$1" == "-h" ];then #Display help
echo "Usage"
echo " -d : Run as daemon"
echo " -h : Display help"
echo " -v : Run on foreground"
echo " -k : Kill daemon"
elif [ "$1" == "-k" ];then #Killing existing process
LOG=`echo $LOGGER -is -t $LOGNAME`
if [ -f "$PIDFILE" ];then #Exist PID file?
PIDKILL=`$CAT $PIDFILE`
$LOG -is -t $LOGNAME "Killing fake vrrpd $PIDKILL"
kill -9 $PIDKILL
rm -f $PIDFILE
$LOG -is -t $LOGNAME "removing PID file"
else
$LOG -is -t $LOGNAME "PID file not found, killing with killall"
$KILLA $0
fi
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLE=`echo $?`
if [ $MY_VIP_ENABLE = 0 ];then #My VIP was set
$LOG -is -t $LOGNAME "Removing alias $VIP for master"
$IFCONFIG $IF -alias $VIP
else
$LOG "VIP $VIP is already removed or not set, Nothing to do."
fi
$LOG -is -t $LOGNAME "Restarting named"
$RESTART_NAMED
exit 1
elif [ "$1" == "-v" ];then #Run on foreground
LOG="echo"
if [ -f "$PIDFILE" ];then #Exist PID file?
$LOG "There is PID file at $PIDFILE,I'm exiting"
$LOG "If you would like to start forcibly, Use -k option first"
exit 2
fi
main verbose
elif [ "$1" == "-vd" ];then #Run as daemon
main daemon
else
echo "Usage"
echo " -d : Run as daemon"
echo " -h : Display help"
echo " -v : Run on foreground"
echo " -k : Kill daemon"
fi
exit 0
#############################
_
使い方
これ、マスター側はaliasにVIPを設定する以外は全部スタンバイ側の設定で良い。
コメントの通り/usr/local/etc/rc.dに「fakevrrpd」を置いて、本体*1は/usr/local/etc/に実行権付けておけばおk。
忘れずに冒頭の変数を環境に合わせて変更すること。
あとは
service fakevrrpd enable
service fakevrrpd enabled
service fakevrrpd start
で起動する。
ログはmessagesに吐かれるし、デバッグモード的に確認したければ「-v」オプションで直接叩くとフォアグラウンドで動くよ。
CTRL+Cで止めることになるので、最後に「-k」で状態をクリアしておくこと。
なお、マスターのIF起動検知後にWAIT_LIMIT秒待っても目的のサービスのポートが開かないとアボートして終了するので、手動対処。
これは、サービスの停止時間を削るためにマスターのIF起動時点ではまだaliasを止めないでサービスが動くまで粘る仕様。*2
あまりにも長いと「IPが衝突している状態」なので各所によろしくないからだ。
2020-07-12(日)
庭のお手入れ [長年日記]
_ 天気も
何となく晴れている間に洗濯干したり、木の伐採したり。
相変わらず銀木犀はどこからその養分を得ているのか不思議になる勢いで伸びている。
確か昨年の秋にばっさり短くぶった切ったはずなのに。
葉っぱと小枝だけで90㍑ゴミ袋6袋分。
このほかに後日丸鋸でバラして捨てる太い枝が2袋分ぐらいある。*1
しかもこれで目標の2/3までしか終わらなかった。
残りは息子氏が帰省してきたらやるか。
*1 結局4袋ぐらいになった
_ 負傷
太い枝をチェーンソーでぶった切りながら落ちてきた枝を、公園側に落としたくないので左手で受け止めようとした。
掴んだのは良いのだけど、重すぎてそのまま左手を軸に回転して落ちて行くのに巻き込まれて手を強くひねった模様。
夕方の晩飯買い出しに車のシフトノブを握るのも痛くて辛い。
捻挫と言うより骨が痛いが、来週はバイクの車検だし何とか治してor誤魔化して片付けねば(;´Д`)
_ 駄目押し
庭で伐採すると、公園と家の間の暗渠(あんきょ)の上に側にも枝が落ちる。
仕方が無いので公園側から回収に行くのだが、調子に乗って10年前のつもりでフェンスを跳び越えようとしたら脚が引っ掛かってフェンスの尖ったところに右足のモモを強打。
いやま、刺さりはしなかったけどモモに20cm四方の打ち身。
とっても痛い。・゚・(ノД`)・゚・。
2020-07-16(木)
改良 [長年日記]
_
なんちゃって
fakeなvrrpdは、マスターの応答をタイムアウト1秒のpingで見てるので、
高負荷などで応答が滞った時にパタパタ(flap)しないようにちょっと手を入れた。
#!/bin/sh
# This is "Fake VRRP daemon"
# Ver 1.03
# By H.Uekusa 20200716
# Put "fakevrrpd" into /usr/local/etc/rc.d
# such as below
# and do
# "service fakevrrpd enable"
# "service fakevrrpd enabled"
# "service fakevrrpd start"
#---------------------from here-----------------------
# #!/bin/sh
# # -*- coding: utf-8; mode: shell-script; -*-
# # insert `fakevrrpd_enable="YES"' in /etc/rc.conf
# # Use with fvrrpd
# # By H.Uekusa 20200630
# #
# # PROVIDE: fakevrrpd
#
# PROG="/usr/local/etc/fvrrpd"
#
# . /etc/rc.subr
#
# name=fakevrrpd
# rcvar=fakevrrpd_enable
# procname=/bin/sh
# pidfile=/var/run/fvrrpd.pid
#
# start_cmd="${name}_start"
# stop_cmd="${name}_stop"
#
# load_rc_config $name
# : ${fakevrrpd_enable:="NO"}
#
# fakevrrpd_start () {
# echo "Starting fakevrrpd"
# $PROG -d
# }
#
# fakevrrpd_stop () {
# echo "Stopping fakevrrpd"
# $PROG -k
# }
#
# run_rc_command "$1"
#-----------------------to here-----------------------
#
############### configuration valiables ################
CAT="/bin/cat"
GREP="/usr/bin/grep"
IFCONFIG="/sbin/ifconfig"
KILLA="/usr/bin/killall"
LOGGER="/usr/bin/logger"
PING="/sbin/ping"
NC="/usr/bin/nc -z -w 1 "
RESTART_NAMED="/usr/sbin/service named restart"
#
VIP="192.168.10.100"
MASK="netmask 255.255.255.0"
MASTER="192.168.10.10" #Actual master IP address
IF="em0" #Physical interface name in ifconfig
TIMEOUT="3" # Timeout for ping (Seconds)
PORT="80" #Monitor port number for back up the master
WAIT_LIMIT="60" #Limit for waiting the service port (Seconds)
DOUBLE_CHECK="YES" #Double check for Master down (YES/NO)
CHECK_LOOPNUM="4" #Number of loop for double check
CHECK_INTERVAL="2" #Sleep time for double check (Seconds)
#
PIDFILE="/var/run/fvrrpd.pid" #It must be same configuration with fakevrrpd in rc.d.
LOGNAME="fake_vrrpd" #Name on the messages
########################################################
################### main procedure #####################
main () {
STAT_PREV="0"
PID=`echo $$`
echo $PID > $PIDFILE
#
if [ "$1" == "verbose" ];then
LOG="echo"
elif [ "$1" == "daemon" ];then
LOG=`echo $LOGGER -is -t $LOGNAME`
else
exit 3
fi
#
$LOG "Fake vrrpd PID is $PID"
#
while [ 1 ]; do #Infinite loop
$PING -c1 -t$TIMEOUT $MASTER >/dev/null 2>&1
STAT_NOW=`echo $?`
if [ $STAT_NOW != $STAT_PREV ];then #Found change
if [ $STAT_NOW != 0 ];then #Change is master down
if [ "$DOUBLE_CHECK" == "YES" ];then # Do double check
LOOP_COUNT="0"
while [ $LOOP_COUNT -lt $CHECK_LOOPNUM ];do
$PING -c1 -t$TIMEOUT $MASTER >/dev/null 2>&1
STAT_DOUBLE=`echo $?`
LOOP_COUNT=`expr $LOOP_COUNT + 1`
sleep $CHECK_INTERVAL
done
else
STAT_DOUBLE=1
fi
if [ $STAT_DOUBLE != 0 ];then # Double check is fail
$LOG "Master $MASTER down detected! I will become the Master"
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLED=`echo $?`
if [ $MY_VIP_ENABLED != 0 ];then #My VIP is not set
$PING -c1 -t$TIMEOUT $VIP >/dev/null 2>&1
STAT_VIP=`echo $?`
if [ $STAT_VIP != 0 ];then #Another VIP is not found
$LOG "I become the Master!"
$IFCONFIG $IF alias $VIP $MASK
$LOG "Restarting named"
$RESTART_NAMED
else
$LOG "The Master seems down, but there is another Master ??"
$LOG "To avoid conflict, do nothing."
fi
else
$LOG "I am already the Master? Do nothing."
fi
else
$LOG "Master $MASTER flapped, But baked up now."
fi
else #Change is master back up
$LOG "Master $MASTER interface back up detected! Waiting for enabling service at $PORT."
NC_STAT="1"
STAT_COUNT="0"
while [ $NC_STAT != 0 ];do
$NC $MASTER $PORT
NC_STAT=`echo $?`
echo "Status $NC_STAT"
echo "Count $STAT_COUNT"
if [ $STAT_COUNT -gt $WAIT_LIMIT ];then
$LOG "Waiting for enabling service at $PORT timed out $WAIT_LIMIT sec, aborting."
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLE=`echo $?`
if [ $MY_VIP_ENABLE = 0 ];then #My VIP was set
$LOG "Removing alias $VIP for master"
$IFCONFIG $IF -alias $VIP
else
$LOG "VIP $VIP is already removed or not set, Nothing to do."
fi
$LOG "Restarting named"
$RESTART_NAMED
rm -f $PIDFILE
exit 5
fi
STAT_COUNT=`expr $STAT_COUNT + 1`
sleep 1
done
$LOG "Master $MASTER service back up detected! I will become the standby"
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLE=`echo $?`
if [ $MY_VIP_ENABLE = 0 ];then #My VIP was set
$LOG "I become the standby! Removing alias $VIP"
$IFCONFIG $IF -alias $VIP
$LOG "Restarting named"
$RESTART_NAMED
else
$LOG "VIP $VIP is already removed or not set, Nothing to do."
fi
fi
fi
echo "IF Status $STAT_PREV->$STAT_NOW"
STAT_PREV=`echo $STAT_NOW`
sleep 1
done
rm -f $PIDFILE
exit 4
}
########################################################
############## check arguments and execute #############
if [ "$1" == "-d" ];then #Run as daemon
LOG=`echo $LOGGER -is -t $LOGNAME`
$LOG "Fake vrrpd is starting as daemon"
if [ -f "$PIDFILE" ];then #Exist PID file?
$LOG "There is PID file at $PIDFILE,I'm exiting"
$LOG "If you would like to start forcibly, Use -k option first"
exit 2
fi
$0 -vd >/dev/null 2>&1 &
elif [ "$1" == "-h" ];then #Display help
echo "Usage"
echo " -d : Run as daemon"
echo " -h : Display help"
echo " -v : Run on foreground"
echo " -k : Kill daemon"
elif [ "$1" == "-k" ];then #Killing existing process
LOG=`echo $LOGGER -is -t $LOGNAME`
if [ -f "$PIDFILE" ];then #Exist PID file?
PIDKILL=`$CAT $PIDFILE`
$LOG "Killing fake vrrpd $PIDKILL"
kill -9 $PIDKILL
rm -f $PIDFILE
$LOG "removing PID file"
else
$LOG "PID file not found, killing with killall"
$KILLA $0
fi
$IFCONFIG $IF |$GREP $VIP >/dev/null 2>&1
MY_VIP_ENABLE=`echo $?`
if [ $MY_VIP_ENABLE = 0 ];then #My VIP was set
$LOG "Removing alias $VIP for master"
$IFCONFIG $IF -alias $VIP
else
$LOG "VIP $VIP is already removed or not set, Nothing to do."
fi
$LOG "Restarting named"
$RESTART_NAMED
exit 1
elif [ "$1" == "-v" ];then #Run on foreground
LOG="echo"
if [ -f "$PIDFILE" ];then #Exist PID file?
$LOG "There is PID file at $PIDFILE,I'm exiting"
$LOG "If you would like to start forcibly, Use -k option first"
exit 2
fi
main verbose
elif [ "$1" == "-vd" ];then #Run as daemon
main daemon
else
echo "Usage"
echo " -d : Run as daemon"
echo " -h : Display help"
echo " -v : Run on foreground"
echo " -k : Kill daemon"
fi
exit 0
########################################################
2020-07-17(金)
湿布 [長年日記]
_ 打撲
左手首と右モモの負傷、来週月曜のバイクの車検までになんとか治そうとしてるわけだが。。。
まず右モモの打撲、以前からヒザの痛みでもらって余って冷蔵保存していたロキソプロフェンの湿布を使ってみた。
ケガした初日は様子見ながら冷やしてたけど、翌日から腫れて内出血が出てきたので貼ってみた。
3-4日様子見てたけど、貼っているところと貼っていないところで内出血などの状態が全然変わるのね。
貼っているところは打撃した中心に近いのに炎症が抑えられて、内出血もほとんど無い。
はみ出たところは、外側にもかかわらず内出血状態。
モモの打撲は面積がでかいので、湿布にカバーされないところが残るので差がわかりやすい。
_ 一方
左手は微妙な感じ、
拳を閉じる側での痛みは無くなったものの、開く側に力が掛かると痛みがある。
手をついて立ち上がるような負荷だと痛い。
うーん、中指骨にヒビでも入ったのかなあ。。。
少なくとも握れるので、クラッチ操作できるし車検は強引に行くことにする。
2020-07-18(土)
34年 [長年日記]
_
バイク屋さん
来週の車検のために自賠責を継続しにバイク屋さんへ。
いつも面倒見てくれていた人は昨年引退してるのは知ってた。
学生の頃から通ってたバイク屋だけど、その頃から何故か毎日夕方来ていた常連さんが昨年亡くなっていたと聞いて、30年以上経過してるのを改めて実感するなど。*1
*1 でもオレが学生当時からおじいちゃんだったあの人は、未だに現役だと聞いて一安心。まぁ戦車というか岩石オープンみたいな人だからなぁ(;^ω^)
_
整備
車検は20日の予約なので、さっさとやらにゃならんのだけどもお天気と手の調子がイマイチで手が付かず。
2020-07-19(日)
整備 [長年日記]
_
車検整備
点検簿作って、一通りの点検。
マフラーやミラーは純正に交換して・・・
とりあえず問題なさそうなので、最後に交換するEgオイルやブレーキフルード買いにホムセンへそのままバイクで試運転。*1
と、途中でスピードメータがまたもやあれ状態。
昨年北海道から帰って修理した時に、カウンターシャフトにスピードメータギア用のボルトの頭をアーク溶接し直した。
しかし御家庭用の小型アーク溶接機では焼きの入ったカウンターシャフトまでしっかり溶接が入らずイモ溶接だった模様。*2
で、丁度来ていたホムセンで見つけた↓でなんとかなった(;^ω^)
2液混合で能書きどおり1時間で実用強度。*3
センタースタンド立てて、ギアを入れて60km/hまでリアタイヤ回しても問題なし。
ちなみに、前回の修理は耐衝撃の瞬間接着剤で止めてから溶接もしたのだけど、接着剤はまったく効かなかったって事ですなこれ。
別に商品の宣伝でもステマでも無いのだけど、接着剤も結構高性能になってのね。
熱と油の厳しい条件でもちゃんと硬化して強度出てるの(・∀・)チゴイネ!
そのうちまた外れたら、更に強力な↓こっちで何とか。。
2020-07-20(月)
31年目の [長年日記]
_
ユーザ車検
無事完了。
予約は午前の2ラウンド(10時受付開始)なのだけど、夕方雷雨の予報だから早めに動く。
整備は終わってるので、いつもの河原産業で光軸だけ見てもらう。
確か、以前はスピードメータもテストしてくれたと思ったけどまぁいいや。
1,500円で完了。
で、習志野陸運事務所でお手続き。
なんか前回と微妙に書類が変わってる気がするが、普通にクリア。*1
いつものクリップボードに書類まとめて過不足無し(・∀・)
*1 検査票がユーザ側に置いてあるプリンタで出るようになってた。
_
ラインも
混んでないし、係の人が丁寧にサポートしてくれるのでスムーズに終わって助かる。
スピード/光軸ともに一発。
今回は受け入れ検査のところでハンドルロックの確認された。*1
このあたり、カーボンタンクに換えたときにマジメにハンドルの開き角のストッパーを加工してあった。
おかげでちゃんと手も挟まないしハンドルロックも出来るので無事通過。*2
めでたく10:30には継続の手続きが完了してとっとと(・∀・)カエル!!
気温は大したことないけど、湿度が高くて_ノフ○ グッタリ。
夕方は雨らしいので、ミラーとマフラーをいつものに戻してお片付け。
_
雨
夕方雷雨の予報なので、ブレーキ廻り(フルードが吸湿するので)弄るの止めて早めに片付けたのに、降らないの・・・(;^ω^)
と言うことで早めにzoom飲みに向けて選択やらお風呂やら。
肉体労働のあとの酒はうまい(小並感
2020-07-25(土)
在庫管理 [長年日記]
_
30年落ち
BROSの維持、そろそろ部品確保の戦いとなってきている。
さすがにエンジン潰したらそろそろ諦めることになりそうだ。
互換品や他車種で製造が続いているパーツはそれを使えば良いのだけど、ブッシュなどゴム系の製品で独自の形状の物は厳しい。*1
プラスチック部品は最悪3Dプリンタという手があるけど。。。
で、オクで気になった部品を確保したり改造で取り外した純正を保管しているのだけど、結構数が増えてきて把握が難しくなってきた。
連休だし、天気もアレで庭もバイクも弄れないのでExcelで在庫の一覧化を開始。
書斎のコンテナだけでも50点以上あったわ。
物置の中もリストに加えて、重複したお買い物をしないように気をつけよう。
*1 車体や外装系に多いよね
2020-07-26(日)
祭り [長年日記]
_ amazon
梅雨はまだ明けず、お天気がイマイチのおかげであまりお用事も片付かない。
仕方が無いので眺めていたタイムセール祭りでHHKBのMac用が3,800円と爆安なのを 発見(*゚Д゚) ムホムホ*1
調べたら、コマンドキーなどのバインドに目をつぶれば別にWindowsマシンでも問題なく使えそう。
早速ポチった。
鯖周辺での設定作業とか、書斎の作業スペースでのインストール/設定作業などでスペース食わないし使い心地も良いしよろしいかと。
以前にそれ用に買ったサンワサプライの1,500円のキーボードは、ペラペラだし、筐体反ってるし、メカニカルでも無いのに打鍵が五月蠅く意味不明なのでお払い箱だなぁ。
*1 タイムセール終わっても6,380円ならまぁまぁでは?
2020-07-31(金)
調査 [長年日記]
_
部品
最終的に、物置の中と書斎のコンテナで100点ほどあった。
重複は明らかに消耗品のクラッチ系と、割と壊れやすいレギュレータ類かな。
webikeで純正が買える*1ので、ゴムブッシュ系の部品を中心に手持ちが無い物を見積もり&発注。
既に結構な割合の部品がディスコンである。
キャブは予備の中古を丸ごと持っているのだけど、フロートバルブなどは時間とともにダメになることが予想される。
単独の交換セットを確保。
あと、互換品も無くなりつつある純正エアクリーナも。
↓一応密林でも互換品があるけど価格が純正の1.5倍ぐらいするし、いつまであるか分からない。
*1 部品番号で在庫確認や見積もりをするのでパーツリストが必須
| Tweets by RC31E | |||||||||
| |||||||||
| |||||||||










