Se isso deve ser movido para a troca de DBA, peço desculpas. Parece mais linux do que DB para mim, então aqui vai:
Eu tenho algumas máquinas que executam tarefas cron agendadas todas as noites e me enviam a saída por e-mail. Eu não quero e-mails para coisas assim. Em geral, acho que o modo como usamos o email está quebrado, mas isso é outra história.
Então eu comecei a pensar que eu poderia manter um banco de dados SQLite central que armazenasse informações sobre quando os trabalhos começavam e terminavam, e talvez até mesmo a saída. Então eu poderia apenas construir uma página da Web que consulta isso e me diga que estava acontecendo ontem à noite.
Então, criei um esquema simples e posso executar esse comando no início de um script.
sqlite3 dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"
Então, agora eu tenho um registro que afirma que meu trabalho começou e a que horas. Viva. Então eu posso executar um comando semelhante para colocar o tempo que o trabalho termina.
Isso funciona muito bem se o banco de dados e as tarefas estiverem na mesma máquina. Eu vou para outra máquina e preciso atualizar o banco de dados sqlite .... Como posso fazer isso de forma eficiente?
Eu tentei isso
ssh [email protected] 'sqlite3 /home/aaron/dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"'
Mas isso retorna:
Error: no such column: NOW
Eu tentei algumas variações, mas não cheguei a lugar nenhum.
Eu estou perto? Eu deveria estar fazendo algo totalmente diferente? Eu estou reinventando a roda?