So sánh giữa systemd timer và crontab - ban ca thuong

/imgposts/jq1z4ces.jpg

Trong quá trình tìm hiểu nguyên nhân tại sao chứng chỉ của Certbot không tự động cập nhật, tôi lần đầu tiên được biết rằng systemd timer cũng có thể hoạt động như một công cụ quản lý tác vụ định thời của hệ thống. Vậy nó khác gì so với crontab mà chúng ta đã quen rồng hồ thuộc?

  • Hỗ trợ các tác vụ định thời chính xác đến mức micro giây, mili giây và giây; trong khi đó, crontab chỉ hỗ trợ ở mức phút.
  • Nếu tác vụ trước chưa hoàn thành, systemd timer sẽ không thực thi lại nhiệm vụ mới; còn với crontab, vấn đề đồng bộ hóa đơn lẻ phải được xử lý thủ công.
  • Hỗ trợ lên kế hoạch cho các tác vụ chỉ chạy một lần duy nhất vào thời điểm xác định.
  • Có khả năng dễ dàng chỉ định người dùng để chạy tác vụ.

Mỗi tệp ".timer" đều cần phải có một tệp ".service" tương ứng tồn tại, điều này giúp cho việc đặt giờ trở nên có ý nghĩa. Theo mặc định, nếu tên của Timer và Service (không bao gồm phần mở rộng) giống nhau, thì tệp ".timer" sẽ kiểm soát cách thức hoạt động của tệp ".service", ví dụ như "foo.timer" và "foo.service".

Do timer cũng là một unit của systemd, vì vậy các thao tác cơ bản đối với nó tương tự như đối với service:

  • systemctl start [TênUnit] // Khởi động unit
  • systemctl enable [TênUnit] // Thiết lập unit chạy tự động khi khởi động máy
  • systemctl list-timers // Hiển thị danh sách tất cả các timer đang hoạt động
  • systemctl stop [TênUnit] // Dừng unit
  • systemctl disable [TênUnit] // Tắt tính năng chạy tự động khi khởi động
  • Sử dụng Systemd để cấu hình các tác vụ định thời mang cá độ bóng đá lại sự linh hoạt cao hơn, đặc biệt phù hợp với các môi trường yêu cầu độ chính xác cao hoặc cần quản lý phức tạp nhiều tác vụ cùng lúc.