mysqldump script -> Variablen Problem

R

Rauschi

Grünschnabel
Folgendes Script :

Code:
#!/bin/sh
#------------------------------------------------------------------------------
#Overall
#------------------------------------------------------------------------------
DATUM=`date +%Y-%m-%d`
MYSQLDUMP=/usr/bin/mysqldump
BACKUPDIR=/opt/mysqlbackup
#------------------------------------------------------------------------------
#Connection Parameters
#------------------------------------------------------------------------------
HOST=localhost
USER=backup
PW=dumdidum
PORT=3306
PROTOCOL=SOCKET
#
CONN="--host=$HOST --user=$USER --password=$PW --port=$PORT --protocol=$PROTOCOL"
#------------------------------------------------------------------------------
#mysqldump Configurations
#------------------------------------------------------------------------------
MYSQLDUMPSTRUCTURE="$MYSQLDUMP $CONN --add-drop-database --add-drop-table --create-options --no-data --lock-tables"
MYSQLDUMPDATA="$MYSQLDUMP $CONN --add-drop-database --add-drop-table --create-options --complete-insert --delayed-insert --extended-insert --lock-tables --routines --triggers"
#------------------------------------------------------------------------------
#Databases to backup
#------------------------------------------------------------------------------
DB1=mysql
DB2=helpdesk
DB3=xinco
#------------------------------------------------------------------------------
#Here we go
#------------------------------------------------------------------------------
$MYSQLDUMPSTRUCTURE $DB1 > $BACKUPDIR/$DATUM-$DB1-structure.sql
$MYSQLDUMPDATA $DB1 > $BACKUPDIR/$DATUM-$DB1-data.sql

Per ssh eingeloggt funktioniert das ganze auf der bash shell einwandfrei. Führ ich das Script aus "sh mysqlbackup.sh" funktioniert es sowohl unter bash als auch sh nicht.

Folgende Fehlermeldung :

: Datei oder Verzeichnis nicht gefundenmysqlbackup
: Datei oder Verzeichnis nicht gefundenmysqlbackup

Diverse Abänderungen haben ergeben das die Variablen nicht korrekt übergeben werden.
echo $HOST funktionier.
Bei den verschachtelten wie $CONN kommt nur irres zeug raus :
--protocol=SOCKETdidum

Also ein Teil vom Password angehängt, der Rest wie Host oder User fehlt.

Wäre für jede Hilfe dankbar.
Gruß
Andi
 
schuss ins blaue

mal bin/bash anstatt bin/sh verwendet?

mfg frank
 
Per ssh eingeloggt funktioniert das ganze auf der bash shell einwandfrei. Führ ich das Script aus "sh mysqlbackup.sh" funktioniert es sowohl unter bash als auch sh nicht.

Ja, bringt selben Fehler
 
.bashrc am Skriptanfang sourcen und damit das Environment laden ?

hmh
 
Hallo Web,

das ist mein erstes Script ;)
Hab ein bißchen zu .bashrc gegoogelt, aber nichts sinnvolles gefunden. Könntest du mir den passenden Quellcode geben ?

Danke
Andi
 
Hi,

am Anfang Deines Skripts einfach
Code:
. ~/.bashrc

einfügen. Dann sollten so Variablen wie PATH usw. richtig gesetzt sein.
Ich seh gerade aber, daß ich beim Aufruf von
sh xterm
auch einen Fehler krieg: cannot execute binary file
Alss mal alternativ mal mit
Code:
sh -c /kompletter/pfad/deinskript

aufrufen.

hmhweb
 
Hallo
Mit welchem Editor und unter welchem System erstellst du dein Script?

Wenn du das Script aus einer bash-shell ausführst sollte die ~/.bashrc schon geladen sein.
Ein source <DATEI> ist also nicht nötig.
Ich vermute eher Zeichensatz-Salat.

Gruß Wolfgang
 
Da alle Werte in dem Skript offensichtlich statisch sind, stellt sich mir irgendwie die Frage, warum die extra in Variablen gepackt werden muessen.
 
hmhweb schrieb:
Ich seh gerade aber, daß ich beim Aufruf von
sh xterm
auch einen Fehler krieg: cannot execute binary file
Das ist auch völlig klar, da xterm ja kein Script ist.
Wenn du eine Shell startest, dann erwartet diese entweder einen ausführbaren String, oder eine datei mit ausführbaren Befehlen.

Gruß Wolfgang
 
Hallo nochmal,

Wolfgang hatte recht :)
Ich hatte die Datei mit Hilfe von Webmin erstellt, der hat am Zeilenumbruch scheisse gebaut.

Wollte gerade noch einem befreundeten Admin ne E-Mail zu dem Thema schreiben, als ich per vi die Datei aufgemacht habe.

Jetzt funktionierts einwandfrei.
Danke an alle für die Mühe

Gruß
Andi
 
Tschuldigung,
da stand ich wohl gerade irgendwie auf der Leitung :think:

hmhweb
 
Hi Leute,
also bei mir funktioniert dieses Script einwandfrei. Jedoch möchte ich da was hinzufügen und zwar einen Kommentar. Welches ich dann per mail erhalte. Und zwar ob das Backup funktionierte oder nicht.
Die Mail erhalte ich zwar, jedoch ohne Kommentar. Wie baue ich da also eine Nachricht ein wie "Die Datensicherung war erfolgreich!".
Soweit ich weiss läuft das über echo, jedoch habe ich keinen schimmer wie ich das alles umsetzen kann. Hat da einer eine Idee.
Vielen Dank und gruss

Goran
 
Code:
mail -s "Die Datensicherung war erfolgreich!" to@mail.adress

Gruss, Xanti
 
Man das ist ja einfacher als ich dachte ;-)
Vielen Dank

Goran
 

Ähnliche Themen

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

dovecot und postfix Konfiguration Problem

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben