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

Frage Entwicklung Perl

Mitglied: Sage24

Sage24 (Level 1) - Jetzt verbinden

20.10.2006, aktualisiert 24.10.2006, 3700 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
Erkennung und -Abwehr
Malware auf Linuxserver finden :-)
Tipp von LochkartenstanzerErkennung und -Abwehr10 Kommentare

Geht ganz einfach mit und Genauer gesagt: Momentan sind große Botnetze mit linux-Servern aktiv. Siehe golem und heise. Wer ...

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 ...

Exchange Server
Exchange - Zertifikate - alte und neue?!?!?
Frage von rurotilExchange Server1 Kommentar

Hallo Leute, ich habe zur Zeit ein Problem mit meinem Exchange Server, nun habe ich mir die Frage gestellt, ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...