VRChatActivityToolsを定期実行できるようにする(with WSL2)

VRChatのログをパースしてSQLiteに保存してくれるツールを、定期的に自動で実行してくれるようにしてみる。(作業ログです)

https://github.com/nukora/VRChatActivityTools

VRChatActivityToolsのダウンロード

・https://github.com/nukora/VRChatActivityTools/releases
から 「VRChatActivityTools_v1.0.3.zip」をダウンロード
・適当な場所に解凍(後から動かすとちょっと面倒なので決めておいた方がいいかも)

WLS2でcronを使える状態にする

https://loumo.jp/archives/24595 を参考に設定

ただ、serviceの起動をパスワードなしのsudoでさせるのは何となく嫌だったので、ちょっと回り道させる

1. cronのservice実行するスクリプトを書く(on WSL)
 「binaryじゃないよな」って思いながら bin配下に置いた(こういうのはどこに置くのが適切なんだろうか…)

$ sudo vim /usr/local/bin/start_cron.sh
(start_cron.sh の中身)

#!/bin/bash
service cron start

2. sudoでスクリプトを実行するときにパスワードを要求しないようにする
 https://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7 を参考に設定

$ sudo visudo
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
cleantted ALL=NOPASSWD: /usr/local/bin/start_cron.sh

3. Windows の起動時にcronを起動させるようにする
 https://loumo.jp/archives/24595 を参考に、 「C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup」配下に batファイルを作る

wsl /bin/bash -l -c "sudo /usr/local/bin/start_cron.sh"

cronでVRChatActivityToolsを定期実行する

crontabで編集する。若干実行頻度が高すぎる気がするけど、1時間ごとに実行させるようにする。実行時にコマンドプロンプトが立ち上がらないように、 「-console false」を付ける(Readme.txt 参照)

(追記)VRChatActivityToolsは *実行場所に* dbやlogを出力するため、ディレクトリ移動してから実行する必要があった

$ crontab -e
# m h  dom mon dow   command
0 * * * * cd /{hoge}/VRChatActivityTools_v1.0.3/ && ./VRChatActivityLogger.exe -console false


この記事が気に入ったらサポートをしてみませんか?