PC関連のチラ裏

自分用(素人)

ダイソンV10の分解清掃をした

ダイソンV10をバラバラにして分解清掃しました。恐ろしいほどの地獄の埃の量でしたが、臭いは意外と地獄でもなかったのでパーツの洗剤漬け置きなどはせず。
モーターからダストボックス先端までの配線のコネクタを外すのが力技、特に先端側。以下の動画1件目(18:00くらい)のように透明なプラスチック板を作って通してから、割り箸当ててハンマー叩きました。プラスチック板は最近買った日焼け止めの外装プラスチックをハサミで切って作りました。OPEN ME UPの動画は色々小さなミスしてそうだったので、参考程度に。

www.youtube.com

www.youtube.com

月1で洗浄を推奨されている紫のフィルターの奥側、排気用の蛇腹状のフィルターが濡れていると8回息継ぎして止まる。環境によると思いますが24時間じゃ正直乾かない。

・・・なんで排気フィルターちょっと濡れてるだけでモーター止められるんだ・・・ダイソンすごいなあ(小並感)

ラズパイ02Wを買えたのでcactiを設定した

Raspberry Pi Zero 2 Wにcactiサーバになってもらいます。

ラズパイ02Wを買えたのでcacti鯖として初期設定(cacti前まで)

cacti前までにした設定は上記。

cactiインストール

インストール
	apt install cacti cacti-spine
		apache2とか沢山(250MBくらい)が一緒にインストールされる。
		インストールされたもののバージョンなど適当に抽出
			http://deb.debian.org/debian bullseye/main arm64 apache2 arm64 2.4.53-1~deb11u1 [273 kB]
			http://deb.debian.org/debian bullseye/main arm64 mysql-common all 5.8+1.0.7 [7,464 B]
			http://deb.debian.org/debian bullseye/main arm64 mariadb-common all 1:10.5.15-0+deb11u1 [36.7 kB]
			http://deb.debian.org/debian bullseye/main arm64 rrdtool arm64 1.7.2-3+b7 [480 kB]
			http://deb.debian.org/debian bullseye/main arm64 snmp arm64 5.9+dfsg-3+b1 [170 kB]
			http://deb.debian.org/debian bullseye/main arm64 cacti all 1.2.16+ds1-2 [15.9 MB]
		cactiの設定画面もいくつか出てくる。
		ウェブサーバーの選択: Apache2
		dbconfig-commonでデータベース作るか: Yes
		そのパスワード: admin でEnter。 (ログインの初期パスになる。空白はランダム生成らしい)


cronの設定
	nano /etc/cron.d/cacti
		#	/5を削除(毎分pollする)、" | if [f /usr/bin/ts ]"以降を削除 (poller-error.logへの出力をやめる)
		* * * * * www-data php /usr/share/cacti/site/poller.php 2>&1 >/dev/null


cactiのエキスポート用ディレクトリを作成しておく
	mkdir /var/www/html/cacti_static
	chmod 777 /var/www/html/cacti_static


初期パスワードをadminリセット (apt install時にadminで作ってなかった場合)
	mysql -u root -p
		use cacti;
		update user_auth set password=md5('admin') where username='admin';
		quit;


Graph Exportプラグイン導入 (1.2では機能が削除されているため)
	cd /usr/share/cacti/site/plugins/
	wget https://github.com/Cacti/plugin_gexport/archive/refs/tags/v2.0.tar.gz	#GitHubに最新があればそれを。多分
	tar xvzf v2.0.tar.gz
	mv plugin_gexport-2.0 gexport
	rm v2.0.tar.gz

参考

apache2の設定、大体はcactiのついで

宅内NW専用(しかも二重ルータ内)なのでhttp。wifi(一応WPA2)なのが気がかりだけど。インターネットに公開しないしhttpsめんどいので放置。

初期設定
	cd /etc/apache2/mods-enabled/

#	a2enmod proxy		#リバースプロキシ用 使わないなら不要
#	a2enmod proxy_http	#リバースプロキシ用 使わないなら不要
	a2enmod headers		#bmpのブラウザキャッシュをオフにさせるため
	a2dismod reqtimeout	#access.logに408のログが溜まるので無効化(SetEnvIfのhostが効かない?)。
				#"RequestReadTimeout header=0 body=0"と同値らしい

	nano /etc/apache2/apache2.conf
		<directory var="" www="">
		#	AllowOverride None	#コメントアウト htaccessを利用する設定
			AllowOverride All
		</directory>
		ServerTokens ProductOnly	#apacheのバージョン情報を表示しない (末尾に書いた方がいい)


特定IPやinternal dummy connectionのアクセスログを残さない (SDカード延命)
	nano /etc/apache2/sites-enabled/000-default.conf
		SetEnvIf User-Agent "internal dummy connection" nolog
		SetEnvIf Remote_Addr "192.168.あ.ア" nolog
		SetEnvIf Remote_Addr "192.168.あ.イ" nolog
		SetEnvIf Remote_Addr "192.168.あ.ウ" nolog
		SetEnvIf Remote_Addr "192.168.あ.エ" nolog
		SetEnvIf Remote_Addr "192.168.あ.オ" nolog
		CustomLog ${APACHE_LOG_DIR}/access.log combined env=!nolog	#最後にenv=!nologを追記する


TvRock用リバースプロキシ (cacti無関係、NW外からアクセスしないなら不要、使ってない)
#	nano proxy.conf
#		ProxyRequests Off
#		ProxyPass /tvrock/ http://192.168.あ.ア:8969/nobody/
#		ProxyPassReverse /tvrock/ http://192.168.あ.ア:8969/nobody/


インデックス表示用
	nano autoindex.conf
		IndexOptions ほげほげ SuppressDescription FoldersFirst
							#"SuppressDescription"と"FoldersFirst"を末尾追記
		IndexHeadInsert "<meta name=\"viewport\" content=\"width=device-width,initial-scale=0.5\">"
							#自分用サイトのスマホ表示用


主にbmpのブラウザキャッシュ対策
	nano /var/www/html/.htaccess
		AddType image/bmp bmp		#bmpのMIME-Typeを修正。image/bmpでないと画像として扱われない?@泥
		Options -Indexes		#rootはIndexオフ
		<filesmatch "\.bmp$"="">		#bmpファイルのブラウザキャッシュをオフにさせる
		        FileETag None
		        Header unset ETag
		        Header add Pragma "no-cache"
		        Header set Cache-Control no-cache
		</filesmatch>

	nano /var/www/html/ほげ/.htaccess
		Options Indexes			#ほげ/はIndexオン

	systemctl restart apache2


CIFSマウント
	crontab -e
		@reboot sleep 20;mount -t cifs -o guest,username=guest,ro //192.168.あ.ア/ふが /var/www/html/ほげ/ふが/
		@reboot sleep 20;mount -t cifs -o guest,username=guest,ro //192.168.あ.ア/ぴよ /opt/ups/datalog/
		@reboot sleep 20;mount -t cifs -o username=asusguest,password=asusguest,vers=2.0 //192.168.あ.1/asus-script /opt/ふにゃ/

	mkdir /var/www/html/ほげ/ふが/	#個人的にリスト化したいフォルダのマウント (win側でReadOnly共有)
	mkdir /opt/ups/
	mkdir /opt/ups/datalog/		#windowsに繋げたBY50Sのfile0.csv,file1.csvがあるフォルダのマウント (win側でReadOnly共有)
	mkdir /opt/ふにゃ/		#Asusルータにさせてるarping,pingのフォルダのマウント

参考

cactiの設定 (ブラウザから)

コマンドを用いたグラフを新規に作る手順は大体、

  1. Presets > Data Profiles (データ収集周期,保持期間)
  2. Data Collection > Data Input Methods (データ入力用コマンド)
  3. Templates > Data Source (1と2を使ってデータ項目を設定する)
  4. Templates > Graph (3を使ってグラフの見た目を設定する、グラフ作成後も変えられる)
  5. Create > New Devices (デバイス追加)
  6. Create > New Graphs (グラフを実際に作成)

1分毎に更新する6時間グラフを基本にする。
データの保持期間が短すぎるので大幅に長くする(1分更新は3ヶ月)。

初期設定
	Configuration > Settings
		General
			Language Support: Disabled		#日本語が中途半端なので英語化
			RRDtool Version: RRDtool 1.7.2+		#apt installで導入されたバージョン
			Enable Automatic Graph Creation: off	#デバイス追加すると勝手にグラフ作成される
			Enable Automatic Tree Item Creation: off
		Poller
			Poller Type: spine			#ホスト数2,3でも十分速くなる
			Poller Interval: Every Minute		#毎分更新
			Cron/Daemon Interval: Every Minute
		Visual
			Rows Per Page: 100
	Configuraton > Users > admin
		User Settings
			Default Time Range: Hourly (1 Minute Average)
			Default Timespan: Last 6 Hours
	Configuraton > Users > guest (グラフエキスポート用)
		Graph Perms ~ Tree Perms
			全て Default * Policy for this User: Deny にする (後でGrantしたグラフだけエキスポートする)
	あとは好みで適当に


データ保持期間の設定。グラフを作成し始めると弄れなくなるので先に決める
	Presets > Data Profiles にてAddで新規作成
		Data Source Profile
			Polling Interval: Every Minute
			Consolidation Functions: Ave,Min,Max,Last 全て
			Default: On
		Data Source Profile RRAs 全て新規作成
			Name				Timespan	Aggregation	Row	Retention
			Hourly (1 Minute Average)	6 Hours		1 min		129600	3 Months
			Daily (5 Minute Average)	1 Day		5 min		105121	1 Year
			Weekly (15 Minute Average)	1 Week		15 min		1		#Row=0だとグラフ出来ない
			Monthly (1 Hour Average)	1 Month		60 min		43800	5 Years
			Yearly (12 Hour Average)	1 Year		720 min		21900	30 Years
			これで1つあたりのRRDfile Size: 9M Bytesになる。
			グラフ閲覧ページでWeeklyグラフを見れるようにしたいが、15分データは保持したくない(容量削減したい)。
			なのでWeeklyの項目だけ作りRow=1に設定。機能します。

	データ保持期間を全データに適用
		Templates > Data Source にて全選択
		Change Profileで、上記で新規作成したProfileにする


SNMP機器(Windows用)のテンプレート設定
	Templates > Device > Generic SNMP Device
		Associated Graph Templates > SNMP - Generic OID Template: 削除する。何のグラフも生成されない
		Associated Graph Templates > Add Graph Template: Host MIBのものを全て追加
		Associated Data Queries > Add Data Query: SNMPを全て追加 (Net-SNMPは追加しない)


Data Input Methodから自作しなくていいデフォ機能で十分なグラフはCreateで作れるはず。

参考

USBRH+cactiで作成した温湿度グラフ

温度が左軸で湿度が右軸。

左軸と右軸は独立できず、数値が対応するようにしか作れない
(この場合はTemp=30,Humi=80が一致するように作っている)。
	Right Axis (--right-axis ) = 2:20
の設定で、左軸をscale倍した後にshiftした数値が右軸の対応値となる。この場合、
	30*2 + 20 = 80
で左軸30と右軸80が対応。

ただ右軸は表示しているだけでItem #7(以下の画像)を右軸に対応させることはできないので、
Item #7の値(80)を対応する左軸の値(30)に変換するCDEFが必要。(CDEFって何の略?)
この場合、
	30*2 + 20 = 80	⇔ 30 = (80 - 20)/2
			⇔ 30 = 80/2 - 20/2
			⇔ 30 = 80*0.5 - 10
ということで、0.5を掛けてから10を減算する処理として
	cdef=CURRENT_DATA_SOURCE,0.5,*,10,-
となるように設定。

設定は以下。

参考

作ったData Input Methodとか

Custom - Get Linux Memory Usage
	/proc/meminfoのメモリ使用量のグラフ作成用
	cat /proc/meminfo | awk '/^MemTotal:/{total=$2}/^MemFree:/{free=$2}/^Buffers:/{buffer=$2}/^Cached:/{cache=$2;filebacked=cache+buffer}/^AnonPages:/{anon=$2;kernel=total-free-buffer-cache-anon;print "total:" total " free:" free " filebacked:" filebacked " anonymous:" anon " kernel:" kernel}'
	出力	anonymous: AnonPages
		filebacked: Cached + Buffers
		free: MemFree
		total: MemTotal
		kernel: MemTotal - MemFree - Cached - Buffers - AnonPages の値
Custom - Get Linux ext4 write KBs
	SDカードに書き込んだ容量
	cat /sys/fs/ext4/mmcblk0p2/lifetime_write_kbytes
Custom - Get Linux Uptime
	Uptimeの日数。デフォのUptimeが10ms単位だった気がするので。
	cat /proc/uptime | awk '{print $1 /60 /60 /24}'
Custom - Get UPS Status
	UPS BY50Sのデータ取得
	/opt/ups/by50s-status.sh
	出力	min: UPS Load 1分間の最小値
		max: UPS Load 1分間の最大値
		now: UPS Load 現在値
		bottom: グラフの下限(min - 0.5) 1分間に35~45%だったら34.5
		height: グラフの高さ(max-min+1) 1分間に35~45%だったら11。bottomにAREA(STACK)でグラフ作る用
		soc: UPSバッテリーの容量%

/opt/ups/by50s-status.sh
	#!/bin/bash

	if [ /opt/ups/datalog/file0.csv -nt /opt/ups/datalog/file1.csv ]; then
	        cp -f /opt/ups/datalog/file0.csv /tmp/datalog-now.csv
	else
	        cp -f /opt/ups/datalog/file1.csv /tmp/datalog-now.csv
	fi

	if [ -e /tmp/datalog-now.csv ]; then
	        soc=`cat /tmp/datalog-now.csv | tail -n 1 | awk -F, '{print $10}' | sed -e 's/^0\+\([0-9]\+\)$/\1/'`
	        now=`cat /tmp/datalog-now.csv | tail -n 1 | awk -F, '{print $6}' | sed -e 's/^0\+\([0-9]\+\)$/\1/'`
	        max=`cat /tmp/datalog-now.csv | tail -n 12 | awk -F, '{if(l<$6) l=$6} END{print l}' | sed -e 's/^0\+\([0-9]\+\)$/\1/'`
	        min=`cat /tmp/datalog-now.csv | tail -n 12 | awk -F, 'BEGIN{s=100}{if(s>$6) s=$6} END{print s}' | sed -e 's/^0\+\([0-9]\+\)$/\1/'`
	        bottom="$((min - 1)).5"
	        height="$((max - min + 1))"
	fi

	if [ -z $max ]; then
	        unset min;
	        unset bottom;
	        unset height;
	fi
	rm -f /tmp/datalog-now.csv

	echo "now:$now max:$max min:$min bottom:$bottom height:$height soc:$soc"

Pingの収集はASUSルータにarpingさせるで得た ping-status.txt をcatして使っている。

cacti グラフエキスポートの設定

guestユーザーが閲覧可能なグラフをapacheのパス(/var/www/html/cacti_static)に出力する。

guestユーザー設定
	Configuraton > Users > guest (グラフエキスポート用)
		General
			Enabled: On
		Permissions
			View Graphsのみ
		Graph Perms~Tree Perms
			全て Default * Policy for this User: Deny にする
			(以下でGrantしたグラフだけエキスポートする)
		Graph Perms
			エキスポートしたいグラフを選択してGrant(許可)、他は全てRestrictedを確認
		User Settings
			Default Time Range: Hourly (1 Minute)


グラフエキスポートの有効化
	Configuration > Plugins > Gexport
		ActionからInstallしてEnableする


グラフエキスポートの設定
	Utilities > Graph Exports > guest Graph Export
		Export Name: guest Graph Export
		Export Method: Local
		Presentation Method: Site
		Site: All Sites Selected
		Export Directory: /var/www/html/cacti_static


ログにエラーが出ないようにする
	Utilities > System Utilities > Log Administration
		グラフエキスポートでファイルが無いとエラーを吐く。
		存在しないという理由でエラーを吐いているファイルパスをtouchコマンドで形だけ作成しておく



/cacti_static のページを開いてもツリーが見えなかったりするけど、
個別の画像やページ(cacti_static/graph_**.html)を使うのでOK。

LFTPでweb上にcactiグラフを上げる

上げて問題ないやつだけ、上げて問題ないところに。
タイムアウトの設定をしないと、WANに接続できないときに毎分プロセスが増え続けるので、要対策。

インストール
	apt-get install lftp

設定項目
	nano /etc/lftp.conf
		set net:timeout 10	#デフォだと死ぬほどリトライしまくるらしいので控えめに
		set net:max-retries 3
		set net:reconnect-interval-base 5
		set dns:fatal-timeout 10
		set dns:max-retries 3

		set xfer:log no		#ログを保存しない

毎分実行
	nano /etc/cron.d/cacti
		* * * * * root lftp -e "mput -O /ぴえん/ぱおん/graphs/ /var/www/html/cacti_static/graphs/*; bye" -u [username],[password] [server]
		#パスワードを保護したいが、無理そう。

	lftp -d -u [username],[password] [server]
	でlsしてみて、CertificateしてるならTLS使っている。

参考


2022/9/10: lftpのタイムアウト用の設定を追記

ラズパイ02Wを買えたのでcacti鯖として初期設定(cacti前まで)

奇跡的にRaspberry Pi Zero 2 Wの販売開始メールに気付くことができ、購入できました。
ラズパイ3B+も持っているのですが、こっちは別NWでDLNAサーバにしたいと考えていたところなので、Zero2Wにcactiサーバとなってもらいます。

  • 本体: Raspberry Pi Zero 2 W 裸運用
  • MicroSD: Kingston Canvas Select Plus SDCS2/32GB
    → WD SC QD101 WDD032G1P0Cにクローン引っ越し(容量はWDのが大きい) @2022/9月
  • USBデバイス: USBRH (ケーブル5m)
  • 電源ケーブル: 部屋に転がってたスマホ充電用ケーブル
  • ACアダプタ: 部屋に転がってた2ポート充電器(Motorola)、1ポート0.75Aくらいしか出ない

現在は一応ACアダプタに電流電圧チェッカーを噛ませているのですが、0.5A出た試しがないですね。素敵。

というわけでセットアップの手順を・・cacti導入前のところまでメモ。

headlessで起動

raspberry pi imagerでSDカードにインストール
	Raspberry pi os lite (64-bit)を選択。現在Bullseye。
	wifiパスワード等設定できる項目は全て入れておく。

ラズパイに挿す前に /boot/ssh を配置しておく方がいい気がする。
	imagerでssh有効化してもされてないような・・・気のせい?
	headlessなので状況の確認手段なし。mini HDMI持ってない

数分経つとwifi接続される。ルーターの画面等からIPとMacアドレス確認。

参考

初期設定

rootのパスワード作成
	sudo su -	#rootへ
	passwd		#rootのパスワード作成
	exit		#ユーザー権限へ
	su		#su入れることを確認


raspi-configで出来ることやる
	raspi-config
		S5	B1を選択 自動ログインしない
		I1	legacy camera disable	カメラ使わないので不要?
		P2	GPU Memory	64→16
		L2	Timezone Asia/Tokyo	imagerで設定しないと抜けてる
		L4	WLAN Country JP
		rebootする


アプデ		#rpi-updateはプレリリース版にアプデするため実行非推奨らしい
	apt update
	apt upgrade -y
	apt dist-upgrade -y	#意味なしだった
	apt autoremove -y	#意味なしだった


エイリアスコマンド	適当にコメントアウト取ったり -la つけたりしとく
	nano ~/.bashrc
		alias ll='ls -la'
	nano ~/.bashrc		#rootにて 色が付くように通常ユーザーからコピペ
		force_color_prompt=yes

		if [ -n "$force_color_prompt" ]; then
		    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
		        # We have color support; assume it's compliant with Ecma-48
		        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
		        # a case would tend to support setf rather than setaf.)
		        color_prompt=yes
		    else
		        color_prompt=
		    fi
		fi

		if [ "$color_prompt" = yes ]; then
		    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] '
		else
		    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
		fi
		unset color_prompt force_color_prompt


		# If this is an xterm set the title to user@host:dir
		case "$TERM" in
		xterm*|rxvt*)
		    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
		    ;;
		*)
		    ;;
		esac

		# You may uncomment the following lines if you want `ls' to be colorized:
		export LS_OPTIONS='--color=auto'
		eval "$(dircolors)"
		alias ls='ls $LS_OPTIONS'
		alias ll='ls $LS_OPTIONS -la'
		alias l='ls $LS_OPTIONS -lA'


shがdashにリンクされている問題の修正	#dashは低機能らしい
	ls -l /bin/sh		#dashを確認。bashなら修正不要
	dpkg-reconfigure dash
		No
	ls -l /bin/sh		#bashを確認


sshポート変更
	nano /etc/ssh/sshd_config
		#Port 22
		Port ほにゃらら

参考

USBRHのドライバインストール

USBRHのドライバインストールが素人的に最もコケやすそうだったので、早めにやります(試行錯誤で駄目になったら最初から)

rpi-sourceをインストール
	cd /tmp		#どこでもいい
	apt install raspberrypi-kernel-headers git python2 bc flex bison libssl-dev libncurses5-dev
			#不要なものがあるかもしれないが、少なくともflexまでは必要だった
	wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source && sudo chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update
			#昔と場所(URL)が変わってて多少困った、新URLのreadmeの頭の方にコマンド書いてある
	rpi-source
	#エラーっぽいものが無いことを祈る


/lib/modules/(uname -r)/build が存在するのを確認する。


USBRHのドライバ
	git clone https://github.com/kimata/usbrh.git
	cd usbrh
	nano src/usbrh.c		#それっぽいところに追記する
		#include 
	make
	make install


USBRHを接続する。


	dmesg				#usbrhありそうか確認・・/proc/usbrhあれば別に
	cat /proc/usbrh/0/status	#表示できればOK

参考

不要機能、サービス停止

/boot/config.txtで機能設定
	nano /boot/config.txt
		hdmi_force_hotplug=1		#HDMIがNTSC(コンポジット)に切り替わるのを防ぐ。不要かも

		# Bluetooth and Wifi disable
		#dtoverlay=pi3-disable-wifi	#wifiは無効化しない(コマンドは書いておく)
		dtoverlay=pi3-disable-bt	#Bluetooth無効化。使わないので

		dtparam=act_led_trigger=timer	#本体ハング確認用に遅め点滅させる
	reboot
	lsmod		#再起動後にbluetoothが存在しないのを確認



サービス停止
	systemctl list-units -t service		#サービス確認、bluetooth系ないのも確認
	systemctl mask alsa-restore.service	#音声らしい。disableだと停止されない。mask:手動起動も不可になる
	systemctl disable avahi-daemon.service	#DHCPでいい
	systemctl disable triggerhappy.service	#ホットキーらしい
	systemctl disable fake-hwclock.service	#問題おきたらntpdateで
	mv /etc/cron.hourly/fake-hwclock /etc/cron.hourly/.fake-hwclock
						#隠しファイルにすれば動作しない
	reboot
		#systemctlの一覧にplymouth等は無かった。

参考

SDカード延命

folder2ramは入れてないです。

swap無効化
	free -h			#スワップ確認 99Miだった
	swapoff --all		#これは永続しない
	systemctl stop dphys-swapfile
	systemctl disable dphys-swapfile
	systemctl status dphys-swapfile
		#終了しなかったらCtrl+Cで終了
	free -h			#スワップ再確認 0B


tmp系をRAMdisk上へ
	nano /etc/fstab	#追記
			tmpfs /tmp tmpfs defaults,size=64m,noatime,mode=1777 0 0
			tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
			tmpfs /var/www/html/cacti_static tmpfs defaults,size=16m,noatime,mode=1777 0 0
							#cactiのgraph export用。
	rm -rf /tmp
	rm -rf /var/tmp
	reboot
	df -T		#/tmp等のマウントがtmpfsを確認


一部ログ無効化
	nano /etc/rsyslog.conf
		#RULES以降でauth.log,syslog,messages以外はコメントアウト(syslogで読めばいい)。
		#cactiの毎分CRONにsyslogを汚されるので、CRONをsyslogに流さないようにする(:programnameの行)
		#rngd(乱数生成器らしい)の毎時ログも流さない
			###############
			#### RULES ####
			###############

			:programname, isequal, "CRON" stop
			:programname, isequal, "rngd" stop
			#
			# First some standard log files.  Log by facility.
			#
			auth,authpriv.*                 /var/log/auth.log
			*.*;auth,authpriv.none          -/var/log/syslog
			#cron.*                         /var/log/cron.log
			#daemon.*                       -/var/log/daemon.log
			#kern.*                         -/var/log/kern.log
			#lpr.*                          -/var/log/lpr.log
			#mail.*                         -/var/log/mail.log
			#user.*                         -/var/log/user.log

			#
			# Logging for the mail system.  Split it up so that
			# it is easy to write scripts to parse these files.
			#
			#mail.info                      -/var/log/mail.info
			#mail.warn                      -/var/log/mail.warn
			#mail.err                       /var/log/mail.err

			#
			# Some "catch-all" log files.
			#
			#*.=debug;\
			#       auth,authpriv.none;\
			#       mail.none               -/var/log/debug
			*.=info;*.=notice;*.=warn;\
			        auth,authpriv.none;\
			        cron,daemon.none;\
			        mail.none               -/var/log/messages

			#
			# Emergencies are sent to everybody logged in.
			#
			*.emerg                         :omusrmsg:*


journaldのログ無効化 (ログのデーモン、ファイルシステムのジャーナリングとは違う。はず)
	nano /etc/systemd/journald.conf
		Storage=none
	systemctl restart systemd-journald
	rm -rf /var/log/journal
		#syslogは動いてるはず


ext4のジャーナリング機能無効化
	tune2fs -l /dev/mmcblk0p2		#featuresにhas_journalを確認
	nano /lib/systemd/system-shutdown/rootfs_journal_off.sh
		#!/bin/sh
		tune2fs -O ^has_journal /dev/mmcblk0p2
	chmod +x /lib/systemd/system-shutdown/rootfs_journal_off.sh
	reboot

	tune2fs -l /dev/mmcblk0p2		#再起動後、featuresにhas_journalが無いのを確認
	chmod -x /lib/systemd/system-shutdown/rootfs_journal_off.sh
						#確認後、一応実行不可にしておく


過去60分に更新されたファイルの調査(随時)
	find /etc/ /home/ /mnt/ /opt/ /root/ /srv/ /usr/ /var/ -not -path "/var/tmp/*" -not -path "/var/www/html/cacti_static*" -cmin -60 > /tmp/list.txt

参考

syslog保存期間を増やす

久々に見返すとsyslogが4週間で消えてた。圧縮されると大した容量じゃないので、保存期間を増やす。

cd /etc/logrotate.d
nano apache2
nano cacti
nano rsyslog
	いずれも
		ローテーション期間 weekly等 → monthly
		ローテーション回数 rotate * → rotate 1000
		圧縮 compress
		圧縮遅延 delaycompress
		空なら無視 notifempty
	を指定。

参考


更新履歴: 2022/9/9 「"rngd" stop」とsyslog保存期間を増やすの項目追加、rootでもプロンプトカラー付くようbashrcの設定

その後のcactiの設定: ラズパイ02Wを買えたのでcactiを設定した

Filezilla Portableなんて最初から要らなかったんだ

自分しか使わないPCで設定があちこちに飛び散るのが不愉快でFileZilla Client Portable | PortableApps.comを仕方なく使っていたんですが。
必要ないらしいですね。随分前から・・・

FileZillaのzipを展開すると docs/fzdefaults.xml.example というファイルがあって、これを編集してexeと同じ直下に配置すると実質ポータブル版として利用できるようです。
Config Location以外にも設定を弄れる項目あり。

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<FileZilla3>
  <Settings>
    <Setting name="Config Location">config/</Setting>
  </Settings>
</FileZilla3>

参考
FileZilla をPortable(ポータブル)化してUSBメモリで持ち運ぶ方法 | My備忘録(又の名を雑記帳)

ASUSルータにarpingさせる

家族用ネットワークの中に個人用ネットワークとしてASUSルータRT-AX56Uを(ルータモードで)設置し、二重ルータで利用しているのですが、ラズパイのcactipingを打って死活状態をログ取りたいのに、pingに応答しないデバイスがあります。そういうのには仕方なくarpingでARPを送るんですが、ARPイーサネットフレームなのでルータを越えられません。(Proxy ARPとかあるらしいですが)
これまで個人用ネットワークのラズパイのwifiを家族用ネットワークにも属させてarpingしてましたが、wifiが切れることもあるので、ASUSルータにやらせることにしました。(こちらは有線なので)

ログを取るのにASUSルータにUSBメモリを挿すのですが、メモリの寿命が心配なのとアクセスランプがうざいので、cacti用の毎分の出力はtmpfsに。

ASUSルータの作業内容

USBメモリを挿して	/tmp/mnt/<USB MEMORY>/	がマウントされるのを確認。設定はルータGUIから。
GUIからゲストアクセス無効、asus-scriptディレクトリ作成、ユーザーfoo(pw:bar)を作成。

mkdir /tmp/mnt/<USB MEMORY>/asus-script/
mkdir /tmp/mnt/<USB MEMORY>/asus-script/ram

<USB MEMORY>/asus-script/に
		arping-command.sh
		crontab
		boot.sh
を用意 (UTF-8,LF)

自分用のarping-command.sh (管理しやすいデバイスにはpingで)
	ping10=`ping 192.168.あ.10 -w 1 -W 1 -q | grep '100% packet loss' >/dev/null || echo 10`
	ping14=`arping 192.168.い.14 -w 3 -c 1 | grep 'Received 0 reply' >/dev/null || echo 14`
			# arpをeth0(WAN側)以外から出したい場合は -I br0 などでインターフェース指定する
	echo "ping10:$ping10 ping14:$ping14" > /tmp/mnt/<USB MEMORY>/asus-script/ram/ping-status.txt

crontab
	* * * * * /tmp/mnt/<USB MEMORY>/asus-script/arping-command.sh

boot.sh
	#!/bin/bash
	mount -t tmpfs -o size=1M tmpfs /tmp/mnt/<USB MEMORY>/asus-script/ram
	cp /tmp/mnt/<USB MEMORY>/asus-script/crontab /var/spool/cron/crontabs/<admin username>


nvram set script_usbmount="/tmp/mnt/<USB MEMORY>/asus-script/boot.sh"
	# 1行でコマンドを入れる場合は script_usbmount='`cp /tmp/mnt/<USB MEMORY>/asus-script/crontab /var/spool/cron/crontabs/<admin username>`' のようにする
nvram commit
nvram show > nvram.txt		#確認用

2024/4/4追記:上記のnvram set script_usbmountが動かなくなったような気がする。
仕方ないのでboot.shを手動で実行。どうすれば自動化できるかは後で考える。
ファームウェアバージョン:3.0.0.4.386_51665-g8072e52 (RT-AX56U)

ラズパイの作業内容

crontab -e
	@reboot sleep 20;mount -t cifs -o username=foo,password=bar,vers=2.0 //192.168.あ.1/asus-script /適当なディレクトリ/

cacti上でチェックするping-status.txtを/適当なディレクトリ/ram/ping-status.txtに変更する

参考
http://kinomuku129.blogspot.com/2017/12/rt-ac68uddns.html https://www.securityforrealpeople.com/2015/08/cron-on-asus.html https://armadillo.atmark-techno.com/howto/mounting-tmpfs