このところ連続して投稿しているCSVサーバーのデータをPCにバックアップするPythonスクリプトを作成しました。現在の姿はタイトル画像のように簡易カバーを取り付けて短絡防止をしています。
バックアップ作業はCSVサーバーを稼働させたまま、PCからソケット通信でSDカードのファイルを読み出してコピーします。
バックアップ作業を開始すると次のように動作します。
1.SDカードのルードディレクトリにあるファイル名を取得
2.CSVサーバーから現在時刻を読み出す
3.各ファイルをPCのローカルディスクにコピーする
4.当月以外のファイルをバックアップフォルダーに移動する
5.SDカードの残容量を読み出して表示する
CSVサーバーは複数のデータを管理していますが、例えばsyslogと名付けたデータは以下の様に保存されています。
¥(ルート)
└ syslog-0000.txt
└ syslog-2609.txt
└ syslog-2610.txt
└ ¥ BU_syslog
└ syslog-2608.txt
バックアップフォルダとは上の例でBU_syslogです。
PCのローカルディスクには以下の様に保存されます。
¥SDBU
└ ¥syslog
└ syslog-0000.txt
└ syslog-2608.txt
└ syslog-2609.txt
└ syslog-2610.txt
先程(10/01日)に実施した結果は以下の通りでした。
DIR
TIM
Copy files
0 init
1 syslog-0000
2 syslog-2610
3 diary-2610
4 diary-0000
5 syslog-2609
6 diary-2609
Move files
ACK syslog-2609,BU_syslog
ACK diary-2609,BU_diary
FRE
14852MB
今のところ大きくても10kbyte程度のファイルですが、PCにコピーされた各ファイルは問題なく閲覧出来ました。
CSVサーバーのLEDインジケータはsocket通信中に点灯するようにしていますが、長くてもせいぜい1秒程度の点灯です。一方 Python Interpreter ウインドウの表示は明らかに遅く、ファイルによっては10秒を超えるものがあるように見えます。急ぐ処理ではないし、他のクライアントからのアクセスを妨げてはいけないと思い、バックアップ作業では各ファイルアクセス毎に5秒間のスリープを入れています。
Raspberry Pi Pico WとSDカードを使ったCSVサーバーはSDカード故障が心配です。Sakana AIに聞いてみたところ、SDの予防交換頻度:1回/年、書き込み頻度:100回/日以下程度であれば安価なSDカードでも余裕を持って運用出来そうです。
趣味に限らず業務利用でも小規模なものであれば使えそうです。
今後とも宜しくお願いします。