Nếu điều này nên được chuyển sang trao đổi DBA, tôi xin lỗi. Cảm thấy giống linux hơn DB đối với tôi, vì vậy hãy vào đây:
Tôi đã có một số máy chạy các công việc định kỳ theo lịch trình mỗi đêm và gửi email cho tôi đầu ra. Tôi không muốn email cho những thứ như thế này. Nói chung tôi nghĩ rằng cách chúng ta sử dụng email bị hỏng, nhưng đó là một câu chuyện khác.
Vì vậy, tôi bắt đầu nghĩ rằng tôi có thể giữ một cơ sở dữ liệu SQLite trung tâm lưu trữ thông tin về thời điểm các công việc bắt đầu và kết thúc, và thậm chí có thể là đầu ra. Sau đó, tôi chỉ có thể xây dựng một trang web truy vấn đó và cho tôi biết đang diễn ra tối qua.
Vì vậy, tôi đã đưa ra một lược đồ đơn giản và có thể chạy lệnh này khi bắt đầu tập lệnh.
sqlite3 dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"
Vì vậy, bây giờ tôi có một hồ sơ nói rằng công việc của tôi bắt đầu và vào thời gian nào. Hoan hô. Sau đó tôi có thể chạy một lệnh tương tự để đặt thời gian mà công việc kết thúc.
Vì thế. Điều đó hoạt động rất tốt nếu cơ sở dữ liệu và các tác vụ trên cùng một máy. Tôi đi đến một máy khác và cần cập nhật cơ sở dữ liệu sqlite .... Làm thế nào tôi có thể làm điều đó một cách hiệu quả?
Tôi đã thử nó
ssh aaron@10.1.150.53 'sqlite3 /home/aaron/dbname.db "UPDATE data SET LastStart = DATETIME('NOW') WHERE TaskName = 'taskname'"'
Nhưng điều đó trả về:
Error: no such column: NOW
Tôi đã thử một số biến thể nhưng không đi đến đâu.
Tôi có thân thiết không? Tôi có nên làm một cái gì đó hoàn toàn khác nhau? Tôi có phát minh lại bánh xe không?