2017-02-23 1 views
0

Ich habe ein Bash-Skript geschrieben, das SCP verwendet, um Dateien auf einen anderen Server auf dem gleichen zu kopieren LAN.ssh: Umzug Fehler: ssh: Symbol EVP_enc_null, Version OPENSL_1.0.0 nicht in der Datei libcrypto.so.1.0.0 mit Link-Zeit-Referenz

Eg. scp /opt/alfresco_associated/tomcat/temp/Alfresco/_source_4939853286195544661.tiff [email protected]: /opt/ocr/data/temp/eng_119045725.tiff

Wenn ich dieses Skript ausführen, direkt über das Terminal, es funktioniert ohne Fehler. Wenn ich es aus einer Java-Klasse aufrufen, die auf Apache Tomcat ausgeführt wird, wird die folgende Fehlermeldung angezeigt:

/usr/bin/ssh: Verschiebungsfehler:/usr/bin/ssh: Symbol EVP_enc_null, Version OPENSL_1.0.0 nicht definiert in Datei libcrypto.so.1.0.0 mit Link-Zeitreferenz Verbindung verloren

Quell- und Zielcomputer werden mit Ubuntu 16.04 LTS Server ausgeführt.

Ich habe versucht: apt Update apt-Upgrade

Server-Version: Apache Tomcat/7.0.59 Server integriert: 28. Januar 2015 15.51.10 UTC Server Nummer: 7.0.59.0 OS-Name : Linux OS Version: 4.4.0-64-generic Architektur: amd64 JVM Version: 1.8.0_65-b17 JVM Hersteller: Oracle Corporation

OpenSSL 1.0.2g 1. März 2016

+0

Dies könnte ein Problem mit den Umgebungsvariablen sein. Sie enthalten Pfade, in denen der dynamische Linker nach freigegebenen Bibliotheken sucht (z. B. libcrypto.so.1.0.0). Stellen Sie sicher, dass der Java-Aufruf die gleichen Umgebungsvariablen wie Ihre Bash-Sitzung definiert. Ein Auszug des Java-Codes, der den Befehl ausgibt, wäre hilfreich. – fzgregor

+0

Danke. Es scheint also, dass Tomcat einen eigenen Satz von Bibliotheken verwendet, einschließlich libssl.so.1.0.0. Dies scheint sich von dem auf dem System installierten OpenSSL 1.0.2g zu unterscheiden. Ich habe die Zeile in tomcat "setenv.sh" auskommentiert, die die benutzerdefinierten Bibliotheken enthielt, und tomcat neu gestartet. Der Fehler besteht weiterhin. Gibt es eine Möglichkeit, zur Laufzeit zu überprüfen, welche Version von OpenSSL Tomcat lädt? –

Antwort

1

Ich habe dieses Problem behoben, indem die unter der Linie an die Spitze meiner Bash-Skript hinzu:

export LD_LIBRARY_PATH="" 

Das setzt die Umgebungsvariable, die Tomcat, um benutzerdefinierte Bibliotheken Punkt setzt. Für die Sitzung des Skripts werden die Standardbibliotheken aufgerufen.

Verwandte Themen