LinuxでVRChatのログをtailしようと思ふたら「そんなファイル無ぇよ」って怒られたのでmkdirの-pしゃまに直して貰つた話


Prerequisites 〜前提〜

LinuxVR勢の我は、VRChatを起動し로그を見張りたい度に毎回/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*と打ち込むのが面倒だったため、~/VRChat/内に眞心たっぷりのお手製tail.shを置きてをり、vrcと云ふaliasbash ~/VRChat/tail.shを實行可能にしてゐる。

ところが以前語ったVRChat最新のBuild 1132についてきたLinuxVR勢特有の버그のせいで、VRChatを別目錄へ再安裝するハメとなる。つまり元〻/media/storage/SteamLibrary/steamapps/compatdata/438100にあったVRChatを卸載し、代はりに/home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100へと安裝する󷲰となった。
これで,/home/kawanerio/.steam/debian-installation/steamapps/common/VRChat/VRChat_Data/Plugins/x86_64/OVRLipSync.dllさへ触れなければ,起動時に衝突しない。しかしこれに因りて面倒亊が一つ増𛀁る:

vrc
VRChat/tail: 1 行: cd: /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/: そのようなファイルやディレクトリはありません

さう、~/VRChat/tail.shが削除された/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*を參照してゐるのだっ。これでは使ひ物にならないので、お手製のtail.shにちと手を加へる󷲰にする。具體的には/home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*の兩方を監視させる。

~/VRChat/tail.sh
HOMEVRCLOGFILEALL=/home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*
MEDIAVRCLOGFILEALL=/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*

tail -f $HOMEVRCLOGFILEALL && tail -f $MEDIAVRCLOGFILEALL

いざvrcを實行する。
が...

vrc
tail: '/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*' を 読み込み用に開くことが出来ません: そのようなファイルやディレクトリはありません
tail: ファイルが全く残っていません

どうもtailは一つでも目錄が存在しなければ誤謬(에러)を起こすやうだ。折角再安裝した許りのVRChatをまたStorageに戻したくないし...

そんな时にmkdir樣の言葉を思ひ出した。

mkdir「ディレクトリがなければ作ればいいじゃない」

さうか、さうなのか。目錄がなければ我が文件目錄を作成すればいいのか(逆轉的發想)。
VRChatを再移動させる时にsteamから文句を言はれさうだが、その時はその時に消去すれば良い。

と言ふ事で早速mkdir /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/を實行する。

mkdir /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/
mkdir: ディレクトリ `/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/' を作成できません: そのようなファイルやディレクトリはありません

な、なんだってー。目錄が存在しないから斯くしてmkdirを使用してゐるのに、一つ/\手作業で作成しないといけないのかー。
そんな思ひに耽りてゐたが次の瞬間、そこにmkdir-pしゃまが我の前に舞ひ降りた。

mkdir -pmkdirだけじゃダメ、効率がわるいわ。そこに-pオプションをつければ、どんなディレクトリも一発で作れるわよ」

なんということだ。これは目から鱗。どうもmkdir-pしゃまの力を使へば、一發で存在しない目錄上にも文件目錄を作成できるやうだ。
我はmkdir -p /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/を實行する。

そしてこのあと色〻やって最終的にtail.shの中身はこのやうに成りた:

~/VRChat/tail.sh
#!/media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/
# にゃーん

# この스크립트は自分のhomeにあるVRChatの로그と/media/storage/の
# SteamLibraryに置きてるVRChatの로그両方を監視する。

tail -f ~/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output* /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output*

實行結果

vrc

==> /home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output_log_01-44-07.txt <==

2021.10.08 01:44:45 Log        -  HTTPFormUseage:UrlEncoded


2021.10.08 01:44:47 Log        -  VRCApplication: OnApplicationQuit at 40.96387


2021.10.08 01:44:47 Log        -  UserInterface destroyed



==> /home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output_log_02-18-41.txt <==
2021.10.05 06:39:47 Error      -  [Behaviour] Error posting visit:
Response was null.
Network is unreachable
{"userId":"usr_d865c0d5-dfb7-4167-9329-8324fa94cee2","worldId":"wrld_d1940c70-f3ea-4231-8167-a5ac4b8db669:82912~hidden(usr_0bedb9af-7bc0-4da2-873a-ee5d45733f8c)~region(jp)~nonce(ADB49DC43A40EF5EE09B8D54967911B77023EF786B02ADA7)"}


2021.10.05 06:39:47 Error      -  [Behaviour] Response was null.
Network is unreachable



==> /home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output_log_20-08-42.txt <==

2021.10.04 20:08:57 Log        -  [Behaviour] OnPlayerPropertiesUpdate


2021.10.04 20:09:14 Log        -  HTTPFormUseage:UrlEncoded


2021.10.04 20:10:00 Log        -  [Behaviour] Room metadata is unchanged, skipping update.



==> /home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output_log_20-12-21.txt <==

2021.10.04 23:54:07 Error      -  [Always] Websocket exploded! An error has occurred in closing the connection. : WebSocketSharp.ErrorEventArgs


2021.10.04 23:54:08 Log        -  VRCApplication: OnApplicationQuit at 13307.51


2021.10.04 23:54:08 Log        -  UserInterface destroyed



==> /home/kawanerio/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output_log_23-55-55.txt <==
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <00000000000000000000000000000000>:0 
  at DžDžDžDŽDžDžDžDžDŽDŽDŽDŽDŽDžDŽDžDžDŽDžDžDŽDžDžDŽDžDŽDŽDŽDŽDžDŽDŽDŽDžDŽDžDžDžDŽDŽDŽDŽDŽDžDžDžDž+DŽDžDŽDžDŽDžDŽDŽDžDŽDŽDŽDŽDžDžDžDŽDžDŽDŽDŽDŽDžDŽDžDŽDŽDŽDžDžDŽDžDŽDžDžDŽDžDŽDŽDŽDžDŽDŽDŽDŽDžDž[EventType,EventEqualityComparerType].Invoke (System.Collections.Generic.IEnumerable`1[T] DžDžDŽDžDŽDŽDžDŽDŽDžDŽDŽDŽDžDžDŽDžDžDŽDžDŽDžDžDžDŽDžDŽDžDŽDŽDžDŽDŽDžDžDžDŽDŽDžDžDžDžDŽDŽDŽDžDž) [0x00000] in <00000000000000000000000000000000>:0  
Network Reachability: Reachable via Local Area Network.


2021.10.05 02:18:02 Error      -  Couldn't fetch current user record - Response was null.
Network is unreachable



==> /media/storage/SteamLibrary/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/output <==

感想

結果、VRChatがHomeに安裝されてゐようがStorageから卸載されてゐようが無事しっぽの命令を實行することが出徠た。次回は動畫再生の出徠ないLinuxVR勢にも動畫內容がわかるやう、vrcgrepとの併用で월드の動畫플레이어の링크を取得する方法でも書こうと思ふ。

用語參照

󷲰
こと(合字かな)
로그
ログ, log
버그
バグ, bug
링크
リンク, link
目錄
もくろく, directory
安裝
あんさう, install
卸載
しゃさい, uninstall
文件
ぶんけん, file
衝突
しょうとつ, crash
誤謬
ごびゅう, error
에러
エラー, error
命令
めいれい, command
實行
じっかう, execute
動畫플레이어
どうがプレイヤー, video player