Fragezeichen im Dateinamen mit Datum

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kaninchen
Beiträge: 4
Registriert: 07.08.2013 14:46:50

Fragezeichen im Dateinamen mit Datum

Beitrag von kaninchen » 07.08.2013 15:41:35

Hallo,

ich bin langsam am verzweifeln.

Ich möchte folgendes machen:

Code: Alles auswählen

mysqldump -ubenutzer -ppasswort -h localhost --opt tplbp > "/var/www/backup/backup_tplbp.$(date +"%d_%m_%Y").sql"
So das die Backupdatei das Datum erhält. Dies Funktioniert auch soweit, jedoch enthält die erzeugte Datei am ende ein "?" -> backup_tplbp.07_08_2013.sql?.

Ich habe bereits viele Scriptbeispiele durchprobiert, aber egal was ich mache, sowie ich mit dem Datum hantiere kommt das "?". Ohne Datum funktioniert alles wie gewollt.

Auch das Datum in eine Variable setzen bringt das gleiche Ergebnis.

Kann da geholfen werden?

Vielen Dank

LG kaninchen
Zuletzt geändert von kaninchen am 07.08.2013 16:34:17, insgesamt 1-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von rendegast » 07.08.2013 16:03:32

Hast Du vielleicht etwas beim Environment der bash eingestellt?

Code: Alles auswählen

$ echo "/var/www/backup/backup_tplbp.$(date +%d_%m_%Y).sql" | cat -A
/var/www/backup/backup_tplbp.07_08_2013.sql$
-A, --show-all äquivalent zu -vET
-E, --show-ends $ am Ende jeder Zeile ausgeben
-v, --show-nonprinting ^‐ und M‐Notation benutzen, außer für LFD und Tab.
Ein schneller Test:

Code: Alles auswählen

[/bin/]ls /var/www/backup/backup_tplbp*
sollte nach obiger Idee nur bei dem/den letzen einer Zeile ein "$" anzeigen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

kaninchen
Beiträge: 4
Registriert: 07.08.2013 14:46:50

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von kaninchen » 07.08.2013 16:26:55

Hallo,

Danke erst mal für die schnelle Antwort.

Nein, ich habe nichts an den Bash Variablen verändert, zumindest nicht bewusst.

Das Ergebnis Deines ersten Beispiels (habe ich in eine Datei gelegt test.sh:

Code: Alles auswählen

bash test.sh
cat: /var/www/backup/backup_tplbp.07_08_2013.sql$: No such file or directory
test.sh: line 1: /var/www/backup/backup_tplbp.07_08_2013.sql: No such file or directory
Und des 2. Beispiels:

Code: Alles auswählen

ls /var/www/backup/backup_tplbp*
/var/www/backup/backup_tplbp.07_08_2013.sql?  /var/www/backup/backup_tplbp.sh
LG kaninchen

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von uname » 07.08.2013 16:35:26

Code: Alles auswählen

mysqldump -uroot -pfuckoff007 -h localhost --opt tplbp > "/var/www/backup/backup_tplbp.$(date +"%d_%m_%Y").sql"
Mindestens unvorteilhaft sind geschachtelte, nicht escapte Anführungszeichen.

Versuche
1.)

Code: Alles auswählen

mysqldump -uroot -pfuckoff007 -h localhost --opt tplbp > "/var/www/backup/backup_tplbp.$(date +'%d_%m_%Y').sql"
und wenn es nicht hilft testweise fest codiert:
2.)

Code: Alles auswählen

mysqldump -uroot -pfuckoff007 -h localhost --opt tplbp > "/var/www/backup/backup_tplbp.07_08_2013.sql"
Im übrigen würde ich die Reihenfolge auf Jahr, Monat, Tag ändern.Hilft dann auch beim Löschen ganzer Jahre und Monate ;-)

kaninchen
Beiträge: 4
Registriert: 07.08.2013 14:46:50

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von kaninchen » 07.08.2013 17:28:26

Hallo,

zu 1.
Direkt in die BASH eingeben ist die Funktion OK, also ohne "?".
Als Script:

Code: Alles auswählen

#!/bin/sh
mysqldump -uroot -pfuckoff007 -h localhost --opt tplbp > "/var/www/backup/backup_tplbp.07_08_2013.sql"
aufgerufen:

Code: Alles auswählen

bash /var/www/backup/backup_tplbp.sh 
ist das "?" wieder vorhanden.

zu 2.
genau so wie bei 1.

Danke, LG kaninchen

Benutzeravatar
goeb
Beiträge: 348
Registriert: 26.08.2006 18:12:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von goeb » 07.08.2013 20:51:51

Falsches Zeilenende?

Code: Alles auswählen

$ cat script
#!/bin/sh
>output

$ sh script

$ ls
output  script

$ unix2dos script
unix2dos: Datei script wird ins DOS-Format konvertiert ...

$ sh script

$ ls
output  output?  script
Allerdings würde die Shell dann beim direkten Ausführen meckern (deswegen sh script im Beispiel):

Code: Alles auswählen

$ ./script
bash: ./script: /bin/sh^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von Cae » 07.08.2013 21:05:35

Ich tippe ebenfalls auf das Zeilenende:

Code: Alles auswählen

$ touch "/tmp/$(printf 'test\r')"
$ ls /tmp/test*
/tmp/test?
$ stat /tmp/test* | head -1
  File: `/tmp/test\r'
(ja, ich weiss, dass es -c %n gibt, aber das schmeisst ein literales \r, also \x0d, anstatt \x5c\x72.)

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

kaninchen
Beiträge: 4
Registriert: 07.08.2013 14:46:50

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von kaninchen » 08.08.2013 14:19:20

Hallo,

Danke, ihr habt mich auf den richtigen Weg gebracht.

Code: Alles auswählen

Falsches Zeilenende?
Ich tippe ebenfalls auf das Zeilenende:
Ich habe immer mit UEdit gearbeitet und auch daraus kopiert. Da muss das falsche Zeilenende sich eingeschlichen haben.

Ich habe alles noch mal mit nano auf dem Server eingegeben und nicht mehr kopiert, dass hat das Problem beseitigt.

:hail: :hail: :hail:

Vielen Dank

LG kaninchen

Benutzeravatar
goeb
Beiträge: 348
Registriert: 26.08.2006 18:12:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von goeb » 08.08.2013 14:35:28

Kein Grund alles neu zu tippen. Im Paket Debiandos2unix sind Werkzeuge um zwischen DOS/Unix/Mac-Format zu konvertieren. (Es gibt auch noch Debiantofrodos, das hat aber kein Tool für das Mac-Format, falls man das braucht.)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Fragezeichen im Dateinamen mit Datum

Beitrag von Cae » 08.08.2013 18:35:14

Weil's gerade noch dazu passt, ls -b druckt nicht-druckbare Zeichen in escapter Form:

Code: Alles auswählen

$ touch "$(printf '     test\r')"
$ ls *test*
?test?
$ ls -b *test*
\ttest\r
$ 
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten