script wird nur teilweise ausgeführt

Status
Für weitere Antworten geschlossen.

rupertt

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich habe mir eine kleines script geschrieben das einen dump aller mysql Datenbanken machen soll,
leider wird anscheinend die for schleife nicht ausgeführt, der einzelne Dump der mysqlDB wird gemacht:

Rich (BBCode):
#!/bin/bash
#
# 
DATE=`/bin/date +%Y_%m_%d_%H_%M`

# hier alle aelter wie 30 tage loeschen
#find /volume1/Backup/Datenbanken/mysql_nas_* -type f -mtime -30 -exec ls {} \;

# gehe alle DB durch
for DBS in `/usr/syno/mysql/bin/mysql -s -e "show databases"`
do
	if [ "${DBS}" = "information_schema" ]
	then
		echo "skipping"
	else
		echo "doing Database" $DBS
		/usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla ${DBS}| gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_${DBS}-${DATE}.gz
	fi
done

# alte manuelle
#/usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla test| gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_test-${DATE}.gz
/usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla mysql | gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_mysql-${DATE}.gz
#/usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla  information_schema | gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_information_schema-${DATE}.gz


exit 0

Wenn ich das script manuell ausführe geht alles.
Ich habe das Script über den Aufgabenplanner ausführen lassen.

was mach ich falsch?
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
[...]leider wird anscheinend die for schleife nicht ausgeführt, der einzelne Dump der mysqlDB wird gemacht[...]

Wenn ich das script manuell ausführe geht alles.

Ist etwas widersprüchlich, zum einen geht die for Schleife nicht aber wenn es manuell ausgeführt geht alles... ??? Wie soll man das nun verstehen?

Gruß
luddi
 

rupertt

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
uh, ich vermute nur das die schleife nicht ausgeführt wird, wenn über den aufgabeplanner ausgeführt. ich durchsuch grad die logfiles ob da was dazu steht.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Aber mich würde nun interessieren ob die Schleife tatsächlich richtig ausgeführt wird wenn du das script per hand startest...

Gruß
luddi
 

rupertt

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
ah, ja das tut sie, dann werden alle dumps sauber angelegt und er gibt mir auch die "echo" strings aus.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Und wenn das Script per Aufgabenplaner gestartet wird, wird es überhaupt ausgeführt? Also ich vermute mal dass nicht die Schleife das Problem sein wird sondern das script wird nicht ausgeführt.

Gruß
luddi
 

rupertt

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
wird ausgeführt, ich habe einen dump von der DB "mysql".
nur die in der schleife wurden nich gedumpt.
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
du meinst den dump in der voletzten Zeile? Und alle anderen aus der Schleife nicht? Kannst du in der Schleife einmal zum debuggen ein echo einbauen und in eine Datei umleiten...

Rich (BBCode):
for DBS in `/usr/syno/mysql/bin/mysql -s -e "show databases"`
do
  echo "$DBS" >> "$DATE".log
  if [ "${DBS}" = "information_schema" ]; then
    echo "skipping"
  else
    echo "doing Database" $DBS
    /usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla ${DBS}| gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_${DBS}-${DATE}.gz
  fi
done

Was kommt dabei heraus?

Gruß
luddi
 

rupertt

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
mmh,

ich habe bis jetzt immer als admin gearbeitet, grade mal als root eingeloogt und er macht dann
keinen der echo und gibt mir:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

den dump ganz unten macht er aber
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.242
Punkte für Reaktionen
586
Punkte
174
Dann musst du eben in dem Befehl der Schleife auch den user und password angeben mit -u <USER> -p<PASSWORD>

Somit sollte es damit auch funktionieren... weil in der voletzten Zeile gibst du schließlich auch user/password an.

Rich (BBCode):
# gehe alle DB durch
for DBS in `/usr/syno/mysql/bin/mysql -uroot -pblabla -s -e "show databases"`
do
  if [ "${DBS}" = "information_schema" ]; then
    echo "skipping"

[...]

/usr/syno/mysql/bin/mysqldump --opt -uroot -pblabla mysql | gzip -c -9 > /volume1/Backup/Datenbanken/mysql_nas_mysql-${DATE}.gz

Gruß
luddi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat