Cách kiểm tra xem Crontab có hoạt động không

Tác giả sysadmin, T.Một 10, 2023, 02:35:12 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách kiểm tra xem Crontab có hoạt động không


Crontab là viết tắt của bảng cron, trong đó cron được lấy từ từ tiếng Hy Lạp Chronos có nghĩa là thời gian. Crontab là một bộ lập lịch chịu trách nhiệm quản lý các tác vụ được lên lịch bởi người dùng. crontab là tập hợp các lệnh cho phép hệ thống thực hiện các tác vụ một cách tự động. Đó là người giao việc thầm lặng. Do đó, cần phải kiểm tra xem nó có hoạt động bình thường hay không. Nếu chúng tôi không kiểm tra crontab xem nó có hoạt động hay không, nó sẽ khiến hệ thống ngừng hoạt động. Ví dụ chúng ta muốn sao lưu cơ sở dữ liệu thường xuyên vì lý do nào đó crontab ngừng hoạt động. Nếu chúng tôi không kiểm tra điều đó cho đến khi người dùng bắt đầu lại crontab, toàn bộ dữ liệu sẽ bị mất. Thứ sáu là một số trường cố định.

1. Sử dụng Crontab

Các ứng dụng chính của crontab như sau:

  • Nó giúp lấy bản sao lưu của cơ sở dữ liệu hoặc tệp nhật ký.
  • Nó rất hữu ích để xóa các tệp nhật ký và cơ sở dữ liệu.
  • Nó được sử dụng để lên lịch các email như email hết hạn hoặc bản tin.
  • Nó có thể được sử dụng để dọn dẹp bộ đệm mà không cần thực hiện thủ công bởi người dùng.
  • Nó cũng hữu ích trong việc tự động hóa các công việc Unix.

2. Cách kiểm tra xem Crontab có hoạt động không

Có hai cách để đánh giá chức năng của cron.

2.1. Kiểm tra trạng thái của dịch vụ Cron

Bằng cách xem trạng thái của dịch vụ cron, chúng tôi sẽ cố gắng xác định xem crontab có hoạt động theo cách này hay không. Để kiểm tra dịch vụ cron, chúng tôi phải có quyền truy cập vào thiết bị đầu cuối và Linux sẽ hoạt động. Trong phần trình diễn này, chúng tôi sử dụng Ubuntu 20.04.

Sau đây là cú pháp để kiểm tra trạng thái của crontab trong đó lệnh systemctl được sử dụng để quản lý hệ thống và cũng hữu ích trong việc quản lý các dịch vụ. Nó cũng cho phép quản trị viên bắt đầu và dừng các dịch vụ này:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ systemctl status cron
Sau khi thiết bị đầu cuối đã sẵn sàng, chúng tôi chạy lệnh được cung cấp. Sau khi chạy lệnh được cung cấp, chúng tôi nhận được đầu ra sau trong đó trạng thái của cron được hiển thị. Chúng ta có thể thấy trong đoạn mã sau rằng trạng thái hoạt động được hiển thị bằng văn bản màu xanh lá cây. Nếu crontab không hoạt động, nó sẽ hiển thị thông báo không hoạt động với văn bản màu đỏ.


Nếu tab cron không hoạt động, chúng ta có thể khởi động nó bằng cách viết một lệnh đơn giản như sau:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ sudo service cron start
Trong lệnh trước, Sudo là viết tắt của "siêu người dùng làm". Từ đó, chúng ta có thể biết được nó được sử dụng cho mục đích gì. Sudo cho phép quản trị viên chạy các lệnh mà anh ta được phép thực hiện.


Với việc sử dụng lệnh đã nói ở trên, chúng ta có thể khiến cron của mình hoạt động bình thường thành công. Khi chúng tôi chạy lệnh này, nó sẽ hỏi mật khẩu người dùng và sau đó khởi động lại crontab. Chúng tôi có thể xác minh nó đang hoạt động bằng cách chạy lệnh kiểm tra trạng thái.

2.2. Chạy thử một Cronjob

Trong phương pháp này, trước tiên chúng ta phải tạo một Bash. Bash scripting là một cách thuận tiện để tự động hóa mọi thứ trên bất kỳ hệ thống Linux nào. Để tạo một Bash, chúng ta phải biết hiện tại chúng ta đang sử dụng Bash nào. Để kiểm tra điều đó, chúng ta chỉ cần viết lệnh sau:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ which bash
Sau khi chạy lệnh này, chúng tôi nhận được đầu ra như trong hình dưới đây. Trong trường hợp của chúng tôi, đó là "/usr/bin/bash".


Khi chúng tôi có vị trí, chúng tôi chỉ cần sao chép tệp này và tạo tệp bash mới. Đối với điều này, chúng tôi chỉ cần viết lệnh trong thiết bị đầu cuối của chúng tôi như sau:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ nano bash.sh
Sau khi chạy lệnh này ta được file như hình bên dưới. Bạn có thể đặt tên cho tệp bằng bất cứ thứ gì bạn muốn nhưng nó cần được đặt tên là "sh". Trong tệp   Đăng nhập để xem liên kết, chúng tôi viết liên kết của tệp Bash mà chúng tôi đã sao chép từ đoạn mã trước đó là "usr/bin/bash". Nếu chúng ta chỉ chạy file Bash thì nó không hiển thị gì cả. Vì vậy, để hiển thị hoạt động của tệp Bash, chúng tôi hiển thị thông báo "Công việc định kỳ của tôi đang hoạt động" bằng cách sử dụng từ khóa "echo" được sử dụng để hiển thị nội dung được viết bên trong dấu phẩy của nó. Sau khi lưu nó, chúng tôi đóng tệp của chúng tôi.


Bây giờ, chúng tôi thực hiện Bash của chúng tôi. Nhưng trước đó, nó phải là một tệp thực thi. Để làm cho nó có thể thực thi được, chúng tôi chạy lệnh sau:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ chmod +x bash.sh
Sau đó, chúng tôi tạo một công việc định kỳ để thực thi tệp này. Để làm điều đó, trước tiên chúng tôi mở tệp crontab bằng cách chạy lệnh đã cho như sau:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ crontab –e
Khi chạy lệnh trước đó, chúng tôi mở văn bản trong đó chúng tôi chỉ cần viết lệnh sau trong trường hợp của chúng tôi như sau:

Mã nguồn [Chọn]
* * * * */usr/bin/bash/bash.sh
Năm dấu hoa thị khớp với thời gian thực hiện, trong đó dấu hoa thị đầu tiên biểu thị phút, dấu hoa thị thứ hai biểu thị giờ, dấu hoa thị thứ ba biểu thị ngày, dấu hoa thị thứ tư biểu thị tháng và dấu hoa thị cuối cùng biểu thị năm thực hiện. Sau đó, chúng tôi cũng nhập đường dẫn và tên của tệp.


Sau khi đóng tệp và lưu thành công, nó sẽ cài đặt công việc crontab mới cho tệp này.


Sau khi cài đặt crontab thành công, chúng ta chạy lệnh sau để thực thi crontab:

Mã nguồn [Chọn]
linux@linux-Virtualbox:~$ sudo grep –a "bash.sh" /var/log/syslog
Khi chúng tôi chạy lệnh trước đó, nó sẽ hiển thị số lần crontab được thực thi. Trong trường hợp của chúng tôi, đó là sau mỗi giây.


Trong hướng dẫn này, chúng tôi đã trình bày ngắn gọn về crontab, crontab là gì và thảo luận về cách sử dụng nó. Trọng tâm chính của chúng tôi là kiểm tra hoạt động của crontab vì nó sẽ dẫn đến các vấn đề lớn như vô hiệu hóa hoạt động của hệ thống. Sau đó, chúng tôi đã thảo luận về hai phương pháp để kiểm tra xem nó có hoạt động hay không. Để thực hiện nhiệm vụ này, chúng tôi đã sử dụng phiên bản Ubuntu 20.04.