Hướng dẫn cách sử dụng Crontab trên Ubuntu

0

Trong bài viết hướng dẫn này, chúng tôi sẽ cho bạn thấy, làm thế nào để sử dụng Ubuntu crontab. Trong một vài bước đơn giản, chúng tôi sẽ giải thích, làm thế nào để tự động hóa các nhiệm vụ hệ thống của bạn trên máy chủ Ubuntu của bạn, cách sử dụng crontab trong Ubuntu. Tiện ích phần mềm cron là một bộ lập lịch công việc dựa trên thời gian trong các hệ điều hành giống Unix. Cron được điều khiển bởi một tệp crontab (cron table), một tệp cấu hình chỉ định các lệnh shell để chạy định kỳ trên một lịch biểu cụ thể. Các tệp crontab được lưu trữ trong đó danh sách công việc và các hướng dẫn khác cho cron daemon được lưu giữ. Người dùng có thể có các tệp crontab riêng của họ và thường có một tệp crontab toàn hệ thống (thường là trong / etc hoặc thư mục con của / etc) mà chỉ quản trị viên hệ thống mới có thể chỉnh sửa.

Bạn có thể sử dụng cron trên Ubuntu để tự động chạy các tập lệnh trong một khoảng thời gian nhất định, tạo bản sao lưu cơ sở dữ liệu của bạn hoặc các tệp quan trọng khác, theo dõi các dịch vụ đang chạy trên máy chủ của bạn và nhiều thứ khác. Làm theo các bước dưới đây để thiết lập Ubuntu crontab.

1. Kết nối với máy chủ của bạn và cập nhật hệ thống của bạn

Trước khi chúng tôi bắt đầu với việc thiết lập crontab trên máy chủ Ubuntu của bạn, hãy kết nối với VPS của bạn thông qua SSH và cập nhật phần mềm hệ thống của bạn lên phiên bản mới nhất hiện có.

Chúng ta có thể thực hiện điều này bằng cách thực hiện lệnh sau:

apt-get update && apt-get upgrade

2. Kiểm tra xem gói cron đã được cài đặt chưa

Để sử dụng tiện ích cron, chúng ta cần đảm bảo rằng gói cron được cài đặt trên máy chủ của bạn.

Để kiểm tra xem cron đã được cài đặt chưa, chúng ta có thể chạy lệnh sau:

dpkg -l cron

3. Cài đặt gói cron trên Ubuntu

Nếu gói cron không được cài đặt trên máy chủ của bạn thì bạn có thể cài đặt nó với trình quản lý gói:

apt-get install cron

4.Xác minh nếu dịch vụ cron đang chạy

Để kiểm tra xem dịch vụ cron có đang chạy trên hệ thống của bạn hay không, chúng tôi có thể sử dụng lệnh sau:

systemctl status cron

5. Cấu hình các công việc cron trên Ubuntu

Để thiết lập các công việc cron, bạn cần sửa đổi tệp / etc / crontab. Xin lưu ý rằng tập tin này chỉ có thể được sửa đổi bởi người dùng root.
Bạn có thể chỉnh sửa tệp crontab bằng trình soạn thảo văn bản yêu thích của mình, ví dụ:

nano /etc/crontab

Nội dung của tệp này thường trông như sau:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
37 * * * * root run-parts /etc/cron.hourly
23 5 * * * root run-parts /etc/cron.daily
19 3 * * 0 root run-parts /etc/cron.weekly
23 0 6 * * root run-parts /etc/cron.monthly

Như bạn có thể thấy tập tin crontab đã có một lời giải thích về cách xác định các công việc cron của riêng bạn. Cú pháp là như sau:

minute hour day month day_of_week username command

Dấu hoa thị (*) trong crontab có thể được sử dụng để chỉ định tất cả các giá trị hợp lệ, vì vậy nếu bạn cần lệnh được thực hiện hàng ngày vào lúc nửa đêm, bạn có thể thêm công việc cron sau đây:

0 0 * * * root /sample_command >/dev/null 2>&1

Người dùng cụ thể cũng có thể tạo các công việc cron. Các công việc cron của người dùng cụ thể được đặt trong / var / spool / cron / username.

Khi bạn tạo công việc cron cho người dùng cụ thể, bạn không cần phải chỉ định tên người dùng trong công việc cron. Cú pháp cho cronjobs người dùng cụ thể sẽ giống như sau:

minute hour day month day_of_week command

6. Ví dụ về Ubuntu crontab

Chúng ta hãy xem xét một số ví dụ crontab hữu ích hơn.

Giả sử chúng tôi muốn lên lịch một tập lệnh sao lưu để chạy hàng ngày lúc 4:30 sáng. Sau đó, chúng tôi có thể thiết lập công việc định kỳ sau:

30 4 * * * /path/to/script/backup-script.sh

Hoặc ví dụ: nếu chúng tôi muốn lên lịch sao lưu vào ngày đầu tiên của mỗi tháng lúc 8 giờ tối, chúng tôi có thể đặt công việc định kỳ sau thay thế:

0 18 1 * * /path/to/script/backup-script.sh

Chúng tôi cũng có thể sử dụng một số dấu thời gian sau:

@hourly path/to/script/script.sh
@daily path/to/script/script.sh
@weekly path/to/script/script.sh
@monthly path/to/script/script.sh
@reboot path/to/script/script.sh

Điều này sẽ lên lịch công việc cron sẽ được thực hiện vào đầu mỗi giờ / ngày / tuần / tháng hoặc khi khởi động lại máy chủ.

Nếu các tập lệnh tạo ra bất kỳ loại đầu ra nào, bao gồm cả lỗi, chúng tôi có thể thiết lập công việc cron để đăng nhập đầu ra này vào một tệp riêng biệt. Ví dụ, cron sau sẽ được thực thi ba lần một ngày vào lúc 4 giờ sáng, 10 giờ sáng và 16 giờ tối mỗi thứ Tư và thứ Bảy và bất kỳ đầu ra nào (tiêu chuẩn và lỗi) sẽ được ghi vào tệp backup.log:

0 4,10,16 * * wed,sat path/to/script/script.sh > /path/to/logs/backup.log 2>&1

Nếu chúng ta không muốn bất kỳ đầu ra nào được tạo ra, chúng ta có thể chuyển hướng cả lỗi chuẩn và đầu ra tiêu chuẩn tới / dev / null sẽ loại bỏ tất cả thông tin được ghi vào nó:

0 4,10,16 * * wed,sat path/to/script/script.sh > /dev/null 2>&1

7. Khởi động lại dịch vụ cron

Sau khi bạn thực hiện các thay đổi đối với crontab, bạn sẽ cần phải khởi động lại dịch vụ cron bằng cách sử dụng lệnh sau:

systemctl restart cron

8. Hướng dẫn sử dụng Linux crontab

Để biết thêm thông tin về cron, bạn cũng có thể kiểm tra các trang man với:

man cron

man crontab

Nếu bạn khó thiết lập các công việc cron chính xác ngay từ đầu, bạn có thể sử dụng một số công việc cron để tạo ra biểu thức công việc cron. Có một số máy tính công việc cron tốt có sẵn trên Internet.

PS. Nếu bạn thích bài đăng này trên Ubuntu crontab và cách tự động hóa các tác vụ hệ thống, hãy chia sẻ nó với bạn bè của bạn trên các mạng xã hội bằng cách sử dụng các nút ở bên trái hoặc đơn giản là để lại câu trả lời bên dưới. Cảm ơn

Leave a Reply

Your email address will not be published. Required fields are marked *