Freitag, 25. Mai 2012, 17:24

Du bist nicht angemeldet.



Hutchef

hat hier 2. Wohnsitz.

  • »Hutchef« ist der Autor dieses Themas

Beiträge: 252

Ubuntu: 11.04

Kernel: aus der Paketverwaltung

Architektur: 64-bit

  • Private Nachricht senden

1

Sonntag, 8. August 2010, 17:08

Syntaxerror nach Übertragen von Skript auf anderen PC

Liebe Skriptfreunde und Kundigen,

ich komme mal wieder mit einem kleinen Problemchen, an dem ich nun seit einigen Stunden sitze.
Ausgangssituation:
Um meinem Providers Forderung nach zukommen, habe ich mir ein kleines Skript zum Speedtest geschrieben und es auf einen Rechner gepackt. Per Cron lasse ich es aller 3h durchlaufen. Läuft auf dem Rechner auch perfekt.

1. Skript - startet das eigentliche Skript um Ergebnis in Datei zu bringen

Quellcode

1
2
#!/bin/bash
bash speed.sh &>>speed.txt


2. Skript - Download, Suchen der entsprechenden Zeile, FF-Datei löschen und speed.txt mit Datum versehen in separaten Ordner schieben

Quellcode

1
2
3
4
5
#!/bin/bash
wget ftp://ftp.ipv6.uni-leipzig.de/pub/ftp.kame.net/pub/kame/misc/mozilla-19980728.tar.gz
cat /home/hutchef/speed.txt | grep saved| cut -d " " -f 1,2,3,4,7 >> /home/hutchef/speed_ergebniss.txt
rm mozilla-19980728.tar.gz
mv /home/hutchef/speed.txt /home/hutchef/speed/speed_`date '+%Y-%m-%d_%H:%M'`.txt


Als Ergebnis kam folgendes in die Übersichtdatei:

Quellcode

1
2010-08-04 02:31:20 (242 KB/s) saved


System:
Ubuntu 10.04 Desktop Installation

Nun habe ich den Testrechner Rechner gegen meinen Server getauscht und wollte das Konstrukt übertragen. Führe ich nun auf der KOnsole folgenden Befehl aus

Quellcode

1
bash speed.sh &>>speed.txt

erscheint plötzlich folgende Meldung:

Quellcode

1
-bash: syntax error near unexpected token `>'


System: Ubuntu 9.04 Server Edition


Ich habe Rechte und Pfade versucht. Auch mit vollständiger Pfadangabe habe ich gearbeitet. Ich komme nicht mehr weiter. Vielleicht ist hier einer der mir Erklären kann was da anders ist und wo ich nachlesen muss. Danke
mfg Hutchef

Es ist besser für das, was man ist, gehasst,
als für das, was man nicht ist, geliebt zu werden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hutchef« (9. August 2010, 13:55) aus folgendem Grund: fertsch


frostbeule

hat hier 2. Wohnsitz.

Beiträge: 251

Ubuntu: 9.10

Architektur: 64-bit

  • Private Nachricht senden

2

Sonntag, 8. August 2010, 21:29

Ich vermute den Fehler in folgender Zeile von Skript 2:

Quellcode

1
cat /home/hutchef/speed.txt | grep saved| cut -d " " -f 1,2,3,4,7 >> /home/hutchef/speed_ergebniss.txt


und würde deshalb dort das Leerzeichen hinter dem >> entfernen, also sähe die Zeile dann so aus:

Quellcode

1
cat /home/hutchef/speed.txt | grep saved| cut -d " " -f 1,2,3,4,7 >>/home/hutchef/speed_ergebniss.txt


Ich muss aber dazu sagen, dass ich nie wirklich was mit Skripts bei Ubuntu zu tun hatte, das ist eine einfache Spekulation.

frostbeule

Hutchef

hat hier 2. Wohnsitz.

  • »Hutchef« ist der Autor dieses Themas

Beiträge: 252

Ubuntu: 11.04

Kernel: aus der Paketverwaltung

Architektur: 64-bit

  • Private Nachricht senden

3

Montag, 9. August 2010, 08:33

Moin,

leider ist das nicht der erkennbare Knackpunkt. Getestet habe ich es, aber die Mail die ich vom Cron schicken lasse, gibt mir die gleiche Information wie auch der Aufruf auf der Konsole.
Das Problem scheint mir beim Aufruf in Skript 1 zu liegen... aber wie gesagt, da hört es auf da ich nicht verstehe warum es auf Rechner A fast 2 Wochen funktioniert hat und auf Rechner B diesen Fehler ausgibt.
Kann sowas an verschiedener Architektur liegen (32 und 64Bit)?
mfg Hutchef

Es ist besser für das, was man ist, gehasst,
als für das, was man nicht ist, geliebt zu werden.

frostbeule

hat hier 2. Wohnsitz.

Beiträge: 251

Ubuntu: 9.10

Architektur: 64-bit

  • Private Nachricht senden

4

Montag, 9. August 2010, 13:45

An verschiedenen Architekturen sollte es eigentlich nicht liegen.
Vielleicht muss dann hier ein Leerzeichen rein?

Quellcode

1
2
#!/bin/bash
bash speed.sh &>>speed.txt


Es könnte sein, dass jetzt der Teil &>>speed.txt als ein einziger Befehl interpretiert wird, den er nicht kennt, aber erkennt was da eigentlich hin sollte und dich darauf aufmerksam macht. Die Änderung wäre dann also auf:

Quellcode

1
2
#!/bin/bash
bash speed.sh &>>  speed.txt

Welchen Sinn hat eigentlich das "&" davor? Sonst würde ich das mal weglassen und dann das ganze ausprobieren. Irgendwo um die ">>" muss der Fehler ja liegen.

frostbeule

Hutchef

hat hier 2. Wohnsitz.

  • »Hutchef« ist der Autor dieses Themas

Beiträge: 252

Ubuntu: 11.04

Kernel: aus der Paketverwaltung

Architektur: 64-bit

  • Private Nachricht senden

5

Montag, 9. August 2010, 13:54

Hi,

alles schon probiert. Entweder der DL startet aber es wird nichts in die speed.txt geschrieben oder oben der Fehler erscheint. Ob mit oder ohne Leerzeichen... ich habe das Problem nun anders gelöst und komme zu dem Ergebnis, was ich will.

ich habe aus Skript 2 die Zeile

Quellcode

1
wget ftp://ftp.ipv6.uni-leipzig.de/pub/ftp.kame.net/pub/kame/misc/mozilla-19980728.tar.gz

entfernt und ich Skript 1 mit der Erweiterung

Quellcode

1
wget --output-file=/home/hutchef/speed.txt ftp://ftp.ipv6.uni-leipzig.de/pub/ftp.kame.net/pub/kame/misc/mozilla-19980728.tar.gz

vor dem Aufruf des 2. Skirpt eingefügt.

Erledigt ist es nun, aber die Frage warum es auf dem einen System funktioniert und auf dem anderen nicht, bleibt.
mfg Hutchef

Es ist besser für das, was man ist, gehasst,
als für das, was man nicht ist, geliebt zu werden.