
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/cache
und 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. /var
Dies ist also ein Präzedenzfall.