2017-01-15 3 views
0

Ich schrieb eine kleine NEOS Backups Skript, das meine MySQL-Datenbank-Dumps und diese komprimiert ..Leere Bash Linie wirft Fehler

Auf meinem Laptop (Deepin O) das Skript läuft gut, aber auf dem Server es Fehler werfen ...

https://gist.github.com/breadlesscode/2f2e274a3c9314b99ac71fc6b2afb07a

Leerzeilen werfen Fehler ?! Ich weiß nicht warum. Ich habe verschiedene Zeilen versucht, aber es funktioniert.

bash -x ./crons/BackupNeos.sh Ausgang:

+ BACKUP_FOLDER=%s_NEOS_Backup 
+ NEOS_ROOT=$'/html/neos\r' 
+ BACKUP_ROOT=$'/html/backups\r' 
+ NEOS_PACKAGE=$'My.Package\r' 
+ COMPRESS_BACKUP=$'true\r' 
+ NEOS_FLOW_EXPORT=$'true\r' 
+ MYSQL_FULL_BACKUP=$'true\r' 
+ MYSQL_HOST=$'server\r' 
+ MYSQL_USER=$'user\r' 
+ MYSQL_PW=$'password\r' 
+ MYSQL_DB=$'database\r' 
+++ date +%Y-%m-%d_%H-%M-%S 
++ printf %s_NEOS_Backup 2017-01-15_18-53-30 
+ BACKUP_FOLDER=$'2017-01-15_18-53-30_NEOS_Backup\r' 
++ printf %s/%s $'/html/backups\r' $'2017-01-15_18-53-30_NEOS_Backup\r' 
+ BACKUP_FOLDER_PATH=$'/html/backups\r/2017-01-15_18-53-30_NEOS_Backup\r\r' 
+ $'\r' 
: Command not found.le 18: 
' printf 'Backup script start:\n\n 
Backup script start: 

+ cd $'/html/backups\r\r' 
: File or directory not foundtml/backups 
' printf 'Create backup folder... 
+ mkdir $'2017-01-15_18-53-30_NEOS_Backup\r\r' 
' printf 'done!\n 
done! 
+ $'\r' 
: Command not found.le 24: 
./crons/BackupNeos.sh: Zeile 51: Syntax Error: worong eol. 

Wer kann mir helfen?

+0

Willkommen bei Stack-Überlauf. Bitte beachten Sie, dass die bevorzugte Art zu sagen "Danke" hier ist durch Up-Voting gute Fragen und hilfreiche Antworten (sobald Sie genug Ruf zu tun haben), und durch die Annahme der hilfreichsten Antwort auf alle Fragen Sie fragen (Das gibt Ihnen auch einen kleinen Schub für Ihre Ruf). Bitte lesen Sie die [Über] Seite und auch [Wie stelle ich Fragen? hier?] (Http://stackoverflow.com/help/how-to-ask) und [Was mache ich, wenn jemand meine Frage beantwortet ?] (http://stackoverflow.com/help/someone-answers) –

Antwort

3

'\r' ist Windows EOL-Marker, die nicht in Unix-ähnlichen Betriebssystemen funktionieren.

versuchen

dos2unix ./crons/BackupNeos.sh 

Welche EOL konvertieren wird man zu korrigieren.

Alternative Ansatz sed:

sed -i 's/^M$//' ./crons/BackupNeos.sh 
+0

Oh Mann danke! Es war mein FTP-Upload. Ich habe den Transfermode binär eingestellt und alles ist in Ordnung =) – Marvvvv

+0

'\ r' ist die traditionelle Mac-Rückkehr (vor OS X, d. H. MacOS 9 und früher). Windows ist '\ r \ n'. – BlueM