Nun, ich bin ein Linux-Neuling und habe ein Problem mit einem einfachen Bash-Skript.
Ich habe ein Programm, das einer Protokolldatei hinzugefügt wird, während sie ausgeführt wird. Mit der Zeit wird diese Protokolldatei riesig. Ich möchte ein Startskript erstellen, das die Protokolldatei vor jedem Lauf umbenennt und verschiebt und effektiv separate Protokolldateien für jeden Programmlauf erstellt. Folgendes habe ich bisher:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
Beim Laufen sehe ich Folgendes:
: command not found
program
Wenn ich in das Protokollverzeichnis cd und dir ein Verzeichnis ausführe, sehe ich Folgendes:
201111211437\r.log\r
Was ist los? Ich gehe davon aus, dass mir ein Syntaxproblem fehlt, aber ich kann es scheinbar nicht herausfinden.
UPDATE: Dank des Kommentars von Shellter unten habe ich festgestellt, dass das Problem darauf zurückzuführen ist, dass ich die .sh-Datei in Notepad ++ in Windows bearbeite und sie dann per FTP an den Server sende, wo ich die Datei über ssh ausführe . Nach dem Ausführen von dos2unix für die Datei funktioniert es.
Neue Frage: Wie kann ich die Datei überhaupt korrekt speichern, um zu vermeiden, dass dieses Update bei jedem erneuten Senden der Datei durchgeführt werden muss?
\rist carriage_return, überprüfen Sie Ihr Bash-Skript, ist möglicherweise im Skript enthalten