Sollte dies auf die DBA-Vermittlungsstelle verschoben werden, entschuldige ich mich. Fühlt sich für mich eher nach Linux als nach DB an.
Ich habe einige Maschinen, die jeden Abend geplante Cron-Jobs ausführen und mir die Ausgabe per E-Mail senden. Ich möchte keine E-Mails für solche Dinge. Im Allgemeinen denke ich, dass die Art und Weise, wie wir E-Mails verwenden, kaputt ist, aber das ist eine andere Geschichte.
Also begann ich zu denken, dass ich eine zentrale SQLite-Datenbank führen könnte, in der Informationen darüber gespeichert sind, wann die Jobs gestartet und beendet wurden, und möglicherweise sogar die Ausgabe. Dann könnte ich einfach eine Webseite erstellen, die das abfragt und mich wissen lässt, dass es letzte Nacht los ist.
Also habe ich mir ein einfaches Schema ausgedacht und kann diesen Befehl am Anfang eines Skripts ausführen.
sqlite3 dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"
Jetzt habe ich eine Aufzeichnung, aus der hervorgeht, dass mein Job zu welchem Zeitpunkt begonnen hat. Hurra. Dann kann ich einen ähnlichen Befehl ausführen, um die Zeit festzulegen, zu der der Job endet.
Damit. Das funktioniert hervorragend, wenn sich die Datenbank und die Aufgaben auf demselben Computer befinden. Ich gehe zu einem anderen Computer und muss die SQLite-Datenbank aktualisieren. Wie kann ich das effizient tun?
Ich habe es versucht
ssh aaron@10.1.150.53 'sqlite3 /home/aaron/dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"'
Aber das kehrt zurück:
Error: no such column: NOW
Ich habe einige Variationen ausprobiert, bin aber nicht weitergekommen.
Bin ich nah dran Soll ich etwas ganz anderes machen? Erfinde ich das Rad neu?