PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Shell-Script (Bash)



erdnah
14-04-2006, 22:39
Hallo,

ich habe zwei Fragen:

1. Der unten stehende Abschnitt ist Teil eines Shell-Scriptes, das nachts BackUps für mich ausführt. Eigentlich geht das Script nach dem quit noch weiter, jedoch bricht es dort ständig ab. Was mache ich falsch?


# Upload BackUp
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put ${BACKUP} ${BACKUP_FILE}
quit


2. Ich habe einen Zähler $I. Wie muss die Syntax einer Abfrage sein, die immer dann etwas macht, wenn $I nicht durch 10 teilbar ist (wenn also ein Rest bleibt)?

Ich hoffe dass mir jemand helfen kann!

Cheers,
erdnah

Romanday
15-04-2006, 08:19
Hallo,
Eigentlich geht das Script nach dem quit noch weiter, jedoch bricht es dort ständig ab. Was mache ich falsch?


# Upload BackUp
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put ${BACKUP} ${BACKUP_FILE}
quit

Ich hoffe dass mir jemand helfen kann!

Cheers,
erdnah

quit heißt Verbindung beenden, so einfach ist das.:D
Für deine Zähler Frage bilde die Restsumme der ganzzahligen Division.

erdnah
15-04-2006, 10:31
Hi,

es fehlte das "END_SCRIPT" nach dem quit. Nun passt es... ;)

Ich habe versucht eine Überprüfung zu implementieren, die, nachdem ein neues BackUp hochgeladen worden ist, das BackUp des Vortags löscht, außer die ID des BackUps ist durch 10 teilbar (so dass ich auch ein paar ältere BackUps behalte). Leider erhalte ich stets die Fehlermeldung: "syntax error: unexpected end of file".

Dies ist der relevante Code-Ausschnitt:

# Delete some older BackUps
if test $[$BACKUP_YESTERDAY % 10] -ne "0"
then
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
quit
END_SCRIPT
echo "Gestriges BackUp (ID "${BACKUP_YESTERDAY}") geloescht."
else
echo "Gestriges BackUp (ID "${BACKUP_YESTERDAY}") behalten."
fi

Wenn ich den "FTP-Kram" entferne und mich nur auf "Shell-Befehle" beschränke, gibt es keine Probleme. :?

Gruß,
erdnah

ninguno
15-04-2006, 12:53
das END_SCRIPT muss ganz nach links
if test $[$BACKUP_YESTERDAY % 10] -ne "0"
then
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
quit
END_SCRIPT
echo "Gestriges BackUp (ID "${BACKUP_YESTERDAY}") geloescht."
else

erdnah
15-04-2006, 13:40
Danke, damit klappt's! ;)

Mehlwurm
19-04-2006, 07:11
ist das divisionsproblem auch geregelt?
gibt es in der shell nicht auch den Modulo opperator? %
wenn der nicht null ist gibt es einen rest

erdnah
19-04-2006, 15:39
Ja, hat mit Modulo geklappt. Läuft super!