• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

smbclient in bash script

rene04

Newbie
hallo,

war mir nicht sicher in welchem bereich ich das hier posten soll, bin deshalb mal hier in console gelandet.

ich versuche eine datei über smbclient auf einen anderen rechner im netz zu kopieren. das funktioniert auch solange bis ich den befehl in ein script einbaue ( .bash). dann gehts auf einmal nimmer ! weis da jemand rat ?

gruesse rene
 

nobbiew

Hacker
So und wenn du uns jetzt noch mitteilst, ob das Script irgendwelche Meldungen ausspuckt bzw. dein Script postest dann können wir dir vielleicht helfen

Sorry, aber mein Kristallkugel ist heute wieder etwas trüb.
 
OP
R

rene04

Newbie
hi,

also es meldet mir halt meine echo ausgabe, das es nicht funktioniert hat. Die besagte Zeile steht ziemlich weit unten.

Code:
#!/bin/bash

#-------------Konfigurationteil----------------------------------------

OrigFile=/home/srv/firebird/trackstudio/trackstudio.fdb
BackupFile1=/var/cache/backup/trackstudio/trackstudio_aktuell.fdb
BackupFile2=/home/srv/www/htdocs/trackstudio_bak_$(date +"%Y%m%d").fdb
#WindowsStore=//file01k-lautern/rosenber
#Pass=103700

#----------------------------------------------------------------------

#-----Prüfen ob am selben Tag schon ein Backup erstellt wurde. Wenn Ja, dann Ausgabe
#-----einer Fehlermeldung und Abbruch des Scripts

if [ -e ${BackupFile2} ]; then
	echo "Heute wurde schon ein Backup erstellt, bitte wenden Sie sich an Ihren Administrator !"
	exit 1		#Beenden des Scripts
fi

#-----Erstes BackupFile erstellen. Wenn es nicht funktioniert Ausgabe einer Fehlermeldung
#-----und Abbruch des Scripts

gbak -b ${OrigFile} ${BackupFile1}

if [ ${?} -ne 0 ]; then
	echo "Das Erstellen des Backups ${OrigFile} nach ${BackupFile1} ist fehlgeschlagen !"
	exit 1
fi

#-----Zweites BackupFile mit aktuellem Datum erstellen. Wenn es nicht funktioniert Ausgabe
#-----einer Fehlermeldung und Abbruch des Scripts

gbak -b ${OrigFile} ${BackupFile2}

if [ ${?} -ne 0 ]; then
	echo "Das Erstellen des Backups ${OrigFile} nach ${BackupFile2} ist fehlgeschlagen !"
	exit 1
fi

#-----Zweites BackupFile über das Netzwerk auf eine Windows Platte kopieren. Wenn es nicht
#-----funktioniert Ausgabe einer Fehlermeldung und Abbruch des Scripts

#smbclient ${WindowsStore} ${Pass} -c "put ${BackupFile2}"

#if [ ${?} -ne 0 ]; then
#	echo "Das Kopieren der Backupdatei ${BackupFile2} nach ${WindowsStore} ist fehlgeschlagen !"
#	exit 1
#fi

gruesse rene
 

scg

Hacker
Hi rene04,

wie wärs denn, wenn du den Exit-Status nicht nur abfragst, sondern auch ausgibst ? Dann hättest Du einen Hinweis, WARUM etwas schiefgelaufen ist ?
 
OP
R

rene04

Newbie
also ich habe mal irgentwo gelesen das es genau hier zu problemen kommt. gebe ich die smbclient zeile einfach in die console ein funktioniert es ja ! nur eben im script nicht. wie frage ich denn das exit ab und gebe es aus ?

gruesse rene
 

oc2pus

Ultimate Guru
schreib mal set -x nach der Zeile #!/bin/bash in dein Script und lass es laufen.

Dann siehst du genau was passiert ....
 

nobbiew

Hacker
Vor allem wäre es geschickt die Kommentarzeichen vor für den smbclient-Teil zu entfernen. :wink:

Versuch mal folgendes
Code:
WindowsStore=//file01k-lautern/rosenber 
Pass=103700 
 

#-----Zweites BackupFile über das Netzwerk auf eine Windows Platte kopieren. Wenn es nicht 
#-----funktioniert Ausgabe einer Fehlermeldung und Abbruch des Scripts 
 
smbclient ${WindowsStore} ${Pass} -c "put ${BackupFile2}" 
smberr=$? 
if [ ${smberr} -ne 0 ]; then 
   echo "Das Kopieren der Backupdatei ${BackupFile2} nach ${WindowsStore} ist fehlgeschlagen ! (Fehler: ${smberr})" 
   exit 1 
fi
 
OP
R

rene04

Newbie
habe es ausprobiert. Fehler : 1 !?!

die Syntax des smbclient Befehls sollte ja korrekt sein, oder ? hat mal jemand versucht den befehl in einem script bei suse 9.0 auszuführen ?

gruesse rene
 
Oben