Warum Programmcode in /var/cache speichern?

Warum Programmcode in /var/cache speichern?

Ich habe einen Java/Tomcat-Stack geerbt, der unter Ubuntu läuft. Er ist abgestürzt und ich versuche, ihn neu zu starten. Der Programmcode scheint eine Konfigurationsdatei zu verwenden, die ich im Dateisystem gefunden habe.

Das Problem ist, dass ich bei der Übergabe diese Notiz gefunden habe:

the app code is in /var/lib/tomcat6/webapps/PCRTiler
config and helping files are in /var/cache/tomcat6/work/PCRTiler
/work/PCRTiler is a symlink for /var/cache/tomcat6/work/PCRTiler

Unter /var/cache gibt es kein Tomcat6-Verzeichnis. Ich kann auch keinen symbolischen Link in / mit dem Namen work finden. Würde der Link zerstört werden, wenn das darunterliegende Verzeichnis entfernt würde?

Ist es Standardpraxis, programmspezifischen Code in /var/cache zu speichern, und ist dieses Verzeichnis in irgendeiner Weise dauerhaft?

BEARBEITEN

Habe ein install.sh-Skript gefunden, das anscheinend nach /var/cache und /var/lib kopiert

#!/bin/bash
rm -rf /var/lib/tomcat6/webapps/PCRTiler
rm -rf /var/cache/tomcat6/work/PCRTiler
mkdir -p /var/lib/tomcat6/webapps/PCRTiler
mkdir -p /var/cache/tomcat6/work/PCRTiler
cp -r * /var/lib/tomcat6/webapps/PCRTiler
cp -r /var/lib/tomcat6/webapps/PCRTiler/cache_skel/* /var/cache/tomcat6/work/PCRTiler
chown -R tomcat:tomcat /var/cache/tomcat6/work/PCRTiler
chown -R root:root /var/lib/tomcat6/webapps/PCRTiler
service tomcat6 restart

Antwort1

Nach den Richtlinien derLinux-Dateisystemhierarchie:

/var/cache

Ist für zwischengespeicherte Daten von Anwendungen gedacht. Solche Daten entstehen lokal durch zeitaufwändige I/O oder Berechnungen. Diese Daten können in der Regel neu generiert oder wiederhergestellt werden. Im Gegensatz zu /var/spool können Dateien hier ohne Datenverlust gelöscht werden. Diese Daten bleiben zwischen Aufrufen der Anwendung und dem Neustart des Systems gültig.Durch die Existenz eines separaten Verzeichnisses für zwischengespeicherte Daten können Systemadministratoren von anderen Verzeichnissen in /var aus andere Festplatten- und Sicherungsrichtlinien festlegen.

Ich nehme an, dass der letzte Satz eine Begründung liefern könnte, obwohl er in diesem Fall im Widerspruch zur ursprünglichen Beschreibung steht: „Solche Daten werden lokal als Ergebnis zeitaufwändiger E/A-Vorgänge oder Berechnungen generiert.“

Dies kann einfach eine exzentrische oder unwissende Entscheidung einer Einzelperson gewesen sein. Es ist nicht ungewöhnlich, anwendungsspezifische Verzeichnisse in zu erstellen /var/cacheund sie sind dauerhaft, aber ich denke, es ist etwas ungewöhnlich, Quell- oder Konfigurationsdateien dort abzulegen. Ein normativerer Ort, wenn Sie einen Out-of-Path-Verzeichnisbaum für Anwendungscode wünschen, wäre /opt.

Für Webserver wie Apache ist es jedoch normal, einen Teil des modularen Anwendungscodes in einem benutzerdefinierten Unterverzeichnis von zu speichern. /varDies ist also ein Präzedenzfall.

verwandte Informationen