Thứ Sáu, 13 tháng 9, 2013

Tìm hiểu lệnh Crontab trên Linux 2

Quản Trị Mạng - Tính năng Cron trong Linux thực chất là 1 chế độ sắp xếp tự động các chương trình, ứng dụng và kích hoạt chúng tại 1 thời điểm nhất định trong hệ thống, tương tự với Task Scheduler của Windows. Tất cả những gì chúng ta cần làm tại đây là gán các chương trình cần thực thi tới file crontab của hệ thống và sử dụng cấu trúc lệnh phù hợp, cron sẽ tự động thực hiện các ứng dụng đó vào thời điểm đã được thiết lập sẵn trước đó. Do vậy, tính năng này rất phù hợp trong quá trình tự động sao lưu dữ liệu, bảo dưỡng hệ thống... và các công việc tương tự khác.

Mở Crontab:

Trước tiên, các bạn hãy mở Terminal từ menu chính:


mở Terminal

Sử dụng cấu trúc crontab -e để mở file crontab của tài khoản đang sử dụng. Các câu lệnh tại đây sẽ được thực hiện với quyền của tài khoản hiện tại, còn nếu bạn muốn thực thi lệnh trong toàn bộ hệ thống thì hãy áp dụng cấu trúc sudo crontab -e để mở tính năng crontab của tài khoản root. Sử dụng lệnh su -c “crontab -e” nếu distributor Linux của bạn không dùng sudo. Sau đó, hệ thống sẽ hiển thị các tùy chọn editor, chọn Nano nếu có (vì đây là trình editor đơn giản, dễ sử dụng và phù hợp với nhiều người):


sử dụng crontab -e

Các bạn sẽ thấy trình chỉnh sửa text Nano với thông tin GNU nano ở phần header trên cửa sổ Terminal. Và nếu không chọn thì crontab sẽ được mở bằng Vi:


thay đổi editor

Nếu không muốn sử dụng Vi thì các bạn gõ lệnh :quit và nhấn Enter để thoát khỏi Vi. Sau đó gõ export EDITOR=nano và crontab -e để mở file crontab bằng Nano.

Gán tác vụ mới:

Sử dụng phím mũi tên lên xuống hoặc Page Down để di chuyển xuống phía cuối file crontab trong Nano. Tất cả các dòng bắt đầu bằng # nghĩa là đã được cron bỏ qua, bên cạnh đó chúng còn giữ chức năng lưu trữ thông tin gợi ý khi người dùng chỉnh sửa đoạn mã bất kỳ nào đó.


gán tác vụ vào crontab

Cụ thể, cấu trúc lệnh được viết trong crontab phải tuân theo quy chuẩn và chấp nhận những giá trị sau:
minute(0-59) hour(0-23) day(1-31) month(1-12) weekday(0-6) command

Và nếu muốn áp dụng bất kỳ giá trị nào, các bạn chỉ cần thay bằng ký tự đặc biệt *. Ví dụ nếu muốn thực hiện câu lệnh /usr/bin/example vào lúc 12:30 AM hàng ngày thì sử dụng lệnh:
29 0 * * * /usr/bin/example

chỉ định khoảng thời gian cụ thể

Tại đây chúng ta sử dụng giá trị 29 thay vì phút thứ 30 và 0 thay cho 12h AM, bởi vì đơn vị thời gian tính theo phút, giờ và ngày sẽ bắt đầu bằng 0. Tuy nhiên, các bạn cần lưu ý rằng ngày và tháng lại bắt đầu bằng 1.

Sử dụng cấu trúc ngăn cách bằng dấu phẩy để chỉ định nhiều khoảng thời gian khác nhau. Ví dụ:
0,14,29,44 * * * * /usr/bin/example2

sẽ thực hiện lệnh /usr/bin/example2 vào phút thứ 15 mỗi giờ trong ngày. Mặt khác, chúng ta có thể sử dụng cấu trúc lệnh như dưới đây để áp dụng trong 1 khoảng thời gian nhất định nào đó:
0 11 * 1-6 * /usr/bin/example3

thì hệ thống sẽ chạy lệnh /usr/bin/example3 trưa chiều mỗi ngày, nhưng chỉ từ tháng 1 tới tháng 6.


chỉ định khoảng thời gian nhất định

Sau khi chỉ định toàn bộ các tham số cần thiết tại đây, chúng ta nhấn Ctrl + O và nhấn Enter để lưu file crontab trong Nano. Sau đó nhấn Ctrl + X để đóng Nano, các bạn sẽ thấy dòng thông báo:
“crontab: installing new crontab”

nghĩa là file crontab và các tác vụ đi kèm đã được thiết lập hoàn tất.


quá trình thiết lập cron hoàn tất


Chúc các bạn thành công!

Không có nhận xét nào:

Đăng nhận xét

Học lập trình web căn bản với PHP

Bài 1: Các kiến thức căn bản Part 1:  https://jimmyvan88.blogspot.com/2012/05/can-ban-lap-trinh-web-voi-php-bai-1-cac.html Part 2:  https://...