Erstellen eines „at“ Job von der Kommandozeile für eine MySQL-Abfrage
Frage
Von der Befehlszeile, möchte ich ein bei Job erstellen eine MySQL-Abfrage auszuführen. Wie Sie sich vorstellen können Google-Suche oder hier für Stackoverflow „auf“ schwierig ist.
Das funktioniert gut, und die Abfrage wird ausgeführt, wie es sollte:
mysql -e 'MY QUERY;'
aber wenn ich dies tun:
at 17:30 mysql -e 'MY QUERY;'
Um 5:30 ich eine Mail bekommen, die ich sagt, „UPDATE: Befehl nicht gefunden“ und die Abfrage nicht ausgeführt. Ich habe bereits eine .my.cnf Datei auf. Gibt es etwas anderes zu vergessen, ich?
Lösung
Ich glaube, Sie ein Shell-Escape-Problem haben. Die Schale isst wahrscheinlich die Anführungszeichen. Versuchen Sie doppelt unter Angabe wie folgt:
at 17:30 mysql -e "\"MY QUERY;\""
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow