MySQL Textfeld per Shellskript befüllen

Hallo!

Anwendung:
Ich lasse auf einem verteilten Serversystem per CronTab Shellscripts
ausführen. Diese Skripts erzeugen eine Statistik- und eine Logdatei welche ich
im Anschluss in eine Zentrale Datenbank einspiele (wieder per Skript).

Problem:
Variablen die ich zuvor aus der Statistik heraus „ge-grept“ habe, lassen sich ja
sehr einfach in den SQL-Syntax übernehmen und das funktioniert auch. Aber - ich
habe in der Datenbanktabelle ein Feld vom Format „TEXT“ in welches ich die
Logdatei (max. 40 Zeilen) als ganzes übernehmen möchte. Derzeit helfe ich mir
damit ab, dass ich die Logdatei kopiere und den Pfad in der Datenbank ablege -
lieber wäre mir der Kompaktheit halber wen alles in der Datenbank zusammen wäre.

BEISPIEL

**#### \>\>\> So sieht die Tabelle aus:**

ID (INT11) autoincrement,
STARTZEIT (datetime)
ENDZEIT (datetime)
LOG (TEXT)
...

**#### \>\>\> So befülle ich die Variablen:**

STARTZEIT=`grep "Begin:" /statistik/file | awk '{print $3 }'`
ENDZEIT=`grep "Begin:" /statistik/file | awk '{print $3 }'`
**LOG=`cat /log/file`** # So hätte ichs versucht aber das klappt nicht,
 # wegen der 'Escape Sequences'

**#### \>\>\> So sieht der SQL-Syntax aus den ich in eine TEMP-Datei schreibe  
#### \>\>\> und danach diese TEMP-Datei an**  
#### \>\>\> mysql -h test.local -d datenbank -u user -p geheim \>\> **übergebe!**
INSERT INTO log ( STARTZEIT , ENDZEIT, LOG ) VALUES ( \"$STARTZEIT\", 
\"$ENDZEIT\", \"$LOG\" );

Kennt dazu jemand eine Lösung?

Meine Systemdaten: bash, mysql 5

Herzlichen Dank.

Hallo Kurt,:

#### >>> So befülle ich die Variablen:

STARTZEIT=grep "Begin:" /statistik/file | awk '{print $3 }'
ENDZEIT=grep "Begin:" /statistik/file | awk '{print $3 }'
LOG=cat /log/file # So hätte ichs versucht aber das
klappt nicht,

Als ein Ansatz (nicht getestet), störende Zeichen mit tr rausfiltern oder ersetzen:

tr "\n" "\_" ersetzt alle Zeilenendezeichen durch \_ oder

    tr "[:cntrl:]" "\_" ersetzt alle Kontrollzeichen durch \_ oder
    
        tr -d "[:cntrl·]" löscht alle Kontrollzeichen
        Das ganze dann wie oben an LOG übergeben
        
            LOG=`tr ...`
        
        
        Ich kenne MySQL jetzt nicht so gut, um zu wissen, ob dich das weiterbringt, aber da sich sonst niemand gemeldet hat...
        
        Viel Erfolg
        Klaus Bernstein