Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PerScript (cgi) vom alten Linuxserver auf einen neuen portiert, aber es geht nicht

Mitglied: Sage24

Sage24 (Level 1) - Jetzt verbinden

20.10.2006, aktualisiert 24.10.2006, 3737 Aufrufe, 7 Kommentare

Hallo zusammen,
also im Vorfeld: ICH habe absolut KEINE Ahnung von Perlscripten!!! Mache ich Studium nun C++, so dass ich mit einigen Begriffen nun umgehen kann...

Vorgeschichte:
Wir haben bei uns im Berieb ein altes Programm laufen, das Textdateien von Messereignissen erzeugt. dieses Programm läuft schon... SEHR lange und der der es verbrochen hat ist natürlich nicht mehr da.

Da wir uns nun so langsam Sorgen um den alten Linuxserver machen, auf dem ein Perl-Script läuft möchte ich das Script auf einen anderen Linuxserver packen. Laut meinem Cheffe geht es leider nicht auf Wampp da es irgendwie auf "Linux" abgestimmt ist.

Um was es geht hier der Anfang des Scriptes, wo ich denke das dort der Fehler steckt:

*
1 #!/usr/bin/perl
2
3 use CGI;
4 use MD5;
5
6 # tempdirname
7 $temp = substr(MD5->hexhash(MD5->hexhash(time(). {}. rand(). $$)), 0, 32);
8
9 # daten von den pcs im werk holen
10 system("mkdir ./daten/$temp");
11 system("smbclient waage/waage -c \"get waage.txt daten/$temp/waage.txt\" >/dev/null");
12 system("smbclient
waage2/waage -c \"get waage2.txt daten/$temp/waage2.txt\" >/dev/null");
13 system("smbclient spl/spl -c \"get stoerung.csv daten/$temp/stoerung.csv\" >/dev/null");
14 system("smbclient
spl/spl -c \"get stoerung daten/$temp/stoerung\" >/dev/null");
15
16 $query = new CGI;
17
18 # dateien einlesen
19 open (WAAGE, "daten/$temp/waage.txt");
20 @waage = <WAAGE>;
21 close (WAAGE);
22
23 open (WAAGE2, "daten/$temp/waage2.txt");
24 @waage2 = <WAAGE2>;
25 close (WAAGE2);
*
Die Zahlen dienen nur der verständlichkeit.
was mir schon aufällt ist dass ein Verzeichniss unter Zeile 10 nicht erzeugt wird. Auch wenn ich die Variable $temp durch eine constante wie temp erzetze wird kein Ordner temp unter dem Ordner daten erzeugt.
auch wenn die Variable $temp auskommentiert wird und eine weitere Variable $temp = temp; erzeugt wird wird ebenfalls kein Ordner Namens temp erzeugt.

Was mir nun durch denn Kopf ging ist ob es sein kann dass die Standartdistribution, die wir verwenden vielleicht durch den Ersteller noch abgeändert wurde damit dieses Script funktioniert?!?!?

Ist die Syntax dort oben so in Ordneng oder fallen euch grobe Fehler auf?
Komisch ist ja dass wir auf dem alten Linuxserver dieses Script kopiert haben und in den neuen Server eingefügt haben.
Der neue Server kann pingen; gepingt werden.
Das Problem taucht ja schon vor dem holen der einzelnen txt-Dateien von den Clients auf, so dass es schon beim Erzeugen des Temp-Ordners zu Problemen kommt..

Ich danke euch
Mitglied: 26705
20.10.2006 um 12:37 Uhr
Wird das Script auf dem neuen Server auch mit den richtigen Rechten ausgeführt?
Falls nicht, kann das Script den Ordner auch nicht erstellen.

Gibt es denn irgendwelche Fehlermeldungen?
Bitte warten ..
Mitglied: Sage24
21.10.2006 um 21:16 Uhr
Hi,
das könnte sein??? Hmm wenn ich es mir überlege kann das sein.

Ich habe aber testweise das Script mal auf einem Xampp laufen lassen auf einem XP-Prof.
wenn ich die cgi-File in *pl umbenene werden zwar die statischen WErte angezeigt, aber es werden EBENFALLS keine Ordner angelegt.
Dort habe ich doch aber sicherlich die richtigen Rechte da Windows...

Bei dem Linux habe ich absolut KEINE Ahnung!! Müsste dann nochmals schauen welche Rechte ich denn nachschauen muss.
Ich glaube da gab es eine Gruppe als wwwroot oder so ähnlich. da muss ich mal schauen ob ich die gruppe auf dem neuen PC finde und dort die Berechtigungen nochmals richtig eintrage.

melde mich dann nochmals a monatg oder dienstag.

beten DANK & Gruß
Bitte warten ..
Mitglied: 6890
23.10.2006 um 08:03 Uhr
morgen,

könntest du bitte mal

#!/usr/bin/perl -w

einstellen und dann auf der konsole mit

perl -c dein_script.pl

den output posten??

mfg godlike P
Bitte warten ..
Mitglied: Sage24
23.10.2006 um 16:36 Uhr
HA!
Fast habe ich es! Ich habe das WE bei mir zu Hause Xampp installiert und etwas getestet.
Also das PRoblem dass kein Ordner mit den Hashwerten erzeugt wird habe ich nun gelöst:
mkdir ("./daten/$temp", $permissions);
muss es heisen
Wenn ich dann weiter unten im Script anstelle :
open (WAAGE, "daten/$temp/waage.txt");
@waage = <WAAGE>;
close (WAAGE);

open (WAAGE, "daten/temp/waage.txt");
@waage = <WAAGE>;
close (WAAGE);
schreibe und dort in temp eine Textdatei mit richtigen Inhalten setze funktioniert das gesamte Script)))

Mir fehlt nur noch der Befehl:
system("smbclient \\192.168.64.163\waage -c \"get waage.txt daten/",$temp,"/waage.txt\" >/dev/null");
dieser soll von der IP-Adresse / DNS-Namen die Datei waage.txt im Verzeichniss waage abholen!
Wenn er die hat soll er sie in $temp/waage.txt kopieren.
Leider steckt da irgendwo der Fehler!
Habe bei google schon nach "get cgi datei runterladen oder holen" gesucht ber nichts weltbewegendes gefunden.

Wäre vielleicht jemand so freundlich mir kurz zu schreiben wie ich per Script vom PC eine Text-Datei auf den Server in ein Verzeichniss kopiere?
Bitte warten ..
Mitglied: 6890
23.10.2006 um 17:14 Uhr
hallo,

am einfachsten wäre esdoch per ftp zu lösen oder??
dazu kannst du dir das modul Net::FTP anschauen.
is relativ einfach gemacht.

wenn fragen sind melden.

mfg godlike P

[EDIT]
was ich jetzt erst sehe
Laut meinem Cheffe geht es leider nicht auf Wampp da es irgendwie auf "Linux" abgestimmt ist.

nene, kannst dem cheffe sagen: würde auch mit wampp laufen :D
Bitte warten ..
Mitglied: Sage24
24.10.2006 um 08:59 Uhr
Der Client ist aber nur ein Windowsrechner ohne FTP-Server drauf, so dass ich mit dem Net::FTP nicht viel ausrichten kann.
Gibt es nicht einen Befehl wie diesen: system(xcopy \\192.168.64.163\waage\waage.txt ./daten",$temp,"/waage.txt);
oder so ähnlich.
Der Client hat nur die Freigabe waage und ist ein alter Win98 PC, an dem wir nichts ändern wollen.
Der ApacheServer ist ein XP-Prof.

Übringens geht das gesamte Script nun wenn ich die Dateien per Hand in ein Verzeichniss kopiere... es fehlt halt nur noch die Dateiho-Funktion
Bitte warten ..
Mitglied: Sage24
24.10.2006 um 11:13 Uhr
Habe es nun endlich:
#!C:/Programme/xampp/perl/bin/perl.exe

use CGI;
use MD5;
use File::Copy;

  1. tempdirname
$temp = substr(MD5->hexhash(MD5->hexhash(time(). {}. rand(). $$)), 0, 32);

  1. daten von den pcs holen

#system("mkdir ./daten/$temp");
mkdir ("./daten/$temp");
copy( '192.168.64.163/waage/waage2.txt', './daten/'.$temp.'/waage2.txt');
copy('
192.168.64.164/waage/waage2.txt', './daten/'.$temp.'/waage.txt');
copy( '192.168.64.165/spl/stoerung.csv', './daten/'.$temp.'/stoerung.csv');
#copy('
192.168.64.165/spl/stoerung', './daten/stoerung');

$query = new CGI;

  1. dateien einlesen
open (WAAGE, "daten/$temp/waage.txt");
@waage = <WAAGE>;
close (WAAGE);

so läuft nun alles)) Und zwar auf einem Xampp)

Lösung war also nur dass unter Unix/Linux der Smaba-Client angesprochen wurd (smbclient) dieser ist ja bei Win nicht nötig, so dass bei Standartfreigaben ohne Probleme der copy Befehl gentuzt werden kann.
Wenn man dann noch die Bibliothek: use File::Copy; einbindet dann ist alles geritzt.

Oh man bin so froh dass die *** endlich klappt, so brauchen wir nicht mehr angst haben dass der alte server abraucht.

BESTEN DANK an alle !!!!!
Bitte warten ..
Ähnliche Inhalte
Festplatten, SSD, Raid
Neue SSD in alten PC
Frage von tsfirma2014Festplatten, SSD, Raid9 Kommentare

Hallo zusammen, ich hätte da eine Frage zum Thema "SSD": Ich habe hier eine brandneue SSD-Platte vom Typ Kingston ...

Outlook & Mail
Outlook sucht von alt nach neu?
Frage von anteNopeOutlook & Mail4 Kommentare

Moin, ein Kunde hat mir berichtet, dass Outlook 2010 neuerdings bei der Suche nicht von neu nach alt, sondern ...

Windows XP
Umzug von einem alten auf einen neuen PC
gelöst Frage von rudi66Windows XP7 Kommentare

Hi Forum, aus Altersgründen soll der aktuelle PC mit WinXP mit einem neuen mit WinXP ersetzt werden. Eine Option ...

Windows XP
Neuer PC mit alten Programmen
gelöst Frage von wiedhalmWindows XP15 Kommentare

Hallo Experten! Nach dem mein etwas älterer PC (ca 10 Jahre) mit lautem Geräusch seinen Geist aufgeben hat, meine ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 1 TagAusbildung9 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 3 TagenSpeicherkarten3 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 3 TagenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 3 TagenHardware3 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Vmware
Offene LDAP-Server in AS
gelöst Frage von obi-wan-kenobiVmware18 Kommentare

Hallo alle Miteinander, ich habe ein Problem, unsere VM-Ware Appliance (Version. 6.5.0.10000) ist scheinbar angreifbar. Wir haben eben die ...

SAN, NAS, DAS
Nas mit USB und LAN gleichzeitig zugreifen
gelöst Frage von MarkBeakerSAN, NAS, DAS16 Kommentare

Hallo zusammen, ich suche eine Art NAS, womit ich via LAN und USB zugreifen kann. Folgender Aufbau ist gedacht: ...

Suche Projektpartner
Debian 9.5 32 Bit und PHP 7 Fehlerbeseitigungen
Frage von zeroblue2005Suche Projektpartner11 Kommentare

Hallo Zusammen, ich habe eine VM auf Basis von ESXI am laufen. Dieser wurde unter Debian 7 installiert mt ...

Windows Server
Zertifikat RemoteDesktop hinterlegen
Frage von Green14Windows Server10 Kommentare

Hallo zusammen. ich habe mehrere Server (WinSrv 2016). Die Server sind in keiner Domäne und keine Terminalserver. Ich verbinde ...