Sử Dụng Cron Crontab Tự động Chạy Script Trên Server Linux
Có thể bạn quan tâm
- Giới thiệu về Cron Linux
- Kiểm tra các crontab
- Định dàng dòng crontab
- Ví dụ crontab
Giới thiệu Cron, crontab
Một chức năng giống như Microsoft Task Scheduler, nó cho phép bạn chạy các tác vụ theo một lịch biểu (có thể một lần, lặp lại nhiều lần) theo phút, giờ, ngày, tuần, tháng. Thành phần đó trong Linux là crontab (viết tắt của chronograph table). Nó dựa vào đồng hồ hệ thống xác định thời điểm phù hợp thi hành các tác vụ được cấu hình chạy. Thường sử dụng crontab để chạy các lệnh, các script nhẹ với mục đích bảo trì hệ thống, ví du như định kỳ hàng tuần xóa các file log cũ sinh ra bởi httpd, định kỳ cập nhật phần mềm ...
Kiểm tra trạng thái dịch vụ cron có đang chạy không
# Trên CentOS systemctl status crond # Trên Ubuntu systemctl status cronĐể dừng, chạy, khởi động lại sử dụng các lệnh: systemctl stop|start|restart crond
Kiểm tra các crontab
Các crontab (các tác vụ cần chạy theo lịch) được thiết lập chạy cho từng User, để liệt kê xem User hiện tại (đang login) có các crontab nào sử dụng lệnh sau
crontab -lBiên tập crontab
Mặc định thì lưu trữ tại /var/spool/cron/, bạn có thể dùng các trình soạn thảo text như vim, nano vào biên tập - thêm bớt các tác vụ cần chạy theo lịch
Hoặc vào ngay soạn thảo các crontab cho user hiện tại bằng lệnh:
crontab -eỞ màn hình soạn thảo, bạn biên tập các dòng crontab theo cấu trúc trình bày phần dưới, sau đó lưu lại và thoát ra, nếu cú pháp khai báo không có lỗi gì thì các crontab được cài đặt và lên lịch thực hiện
Tìm hiểu định dạng các dòng Crontab
Mỗi dòng crontab có định lưu các số liệu sau:
| * | * | * | * | * | script |
| phút 1 - 59 | giờ 0 - 23 | ngày 1 - 31 | tháng 1 - 12 | thứ 0 - 7 0=chủ nhật 7=thứ bảy | lệnh hoặc script được chạy |
Vậy mỗi dòng thường có 6 cột dữ liệu, 5 cột đầu để xác định thời điểm chạy (thời gian). Cột thứ 6 là lệnh chạy (thường là một script).
Các cột thời gian, loại thời gian nào luôn xảy ra để dấu * (ví dụ mọi phút thì cột phút để dấu *, mọi giờ thì cột giờ để *, mọi ngày thì cột ngày để * ....) còn muốn xảy ra ở một thời điểm cụ thể thì điền thời điểm đó vào.
Ví dụ: Cứ đến phút 30 hàng giờ thì chạy script tên là /script/abc.sh thì cấu trúc như sau:
Điền số 30 vào cột phút, các cột giờ, ngày, tháng, thứ điền * vì xảy ra mọi giờ, mọi ngày, mọi tháng. Vậy dòng crontab phù hợp như sau:
30 * * * * /script/abc.shTương tự như vậy xem một số ví dụ sau:
#Chạy vào lúc 3 giờ hàng ngày 0 3 * * * /script/abc.sh #Chạy vào lúc 17h ngày chủ nhật hàng tuần 0 17 * * sun /scripts/abc.sh #Cứ 8 tiếng là chạy 0 */8 * * * /scripts/abc.sh #Cứ 30 phút chạy một lần */30 * * * * /script/abc.shNgoài ra còn một số dạng tắt:
Chạy hàng tháng
@monthly /scripts/abc.shChạy hàng tuần
@weekly /bin/script.shChạy hàng ngày
@daily /scripts/script.shVí dụ về Crontab
Kiểm tra database và tự sửa chữa.
Mysql nhiều khi bị crash database và cần repair, tạo một script làm việc này và chạy vào 3h sáng hàng ngày.
Làm như sau:
Tạo một script tên là rpairdb.sh với nội dung như sau
#!/bin/bash mysqlcheck -u{username} -p{password} --auto-repair --check --all-databasesTrong đó {username} : điền tài khoản admin của mysql; {password} thay bàng password.
Sau đó gõ lệnh
crontab -eThêm vào một dòng với nội dung
* 3 * * * /rpairdb.shLưu lại là xong.
Cứ 30 phút là chạy một script trong file .php
Giả sử bạn có file PHP, lưu tại /home/user/run30.php, trong đó có các code php mà bạn muốn chạy cứ 30 phút một lần bạn làm tương tự như trên và thêm vào crontab
*/30 * * * * php /home/user/run30.php ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mớiTừ khóa » Sử Dụng Lệnh Crontab
-
Crontab Là Gì? Hướng Dẫn Sử Dụng Crontab Linux - Vietnix
-
Tìm Hiểu Crontab Trên Linux - Viblo
-
Crontab Là Gì? Hướng Dẫn Sử Dụng Crontab Linux - Tino Group
-
Crontab Là Gì? Cách Cài đặt & Sử Dụng Crontab Linux Từ A - Z
-
Những Lệnh Crontab Thường Dùng | TopDev
-
Toàn Tập Cách Sử Dụng Crontab Trên Server Linux - VNTALKING
-
Hướng Dẫn Sử Dụng CronJob/CronTab Thực Hiện Các Tác Vụ định Kỳ ...
-
Làm Việc Với CRONTAB Trên LINUX - Hybrid Technologies
-
Crontab Linux Là Gì? Hướng Dẫn Cài Đặt, Sử Dụng Chuẩn Chỉ Từ A
-
Crontab Trong Linux: Cách Tạo Và Quản Lý Cron Jobs - Freetuts
-
Hướng Dẫn Sử Dụng Cron Job
-
Cách Sử Dụng Cron để Tự động Hóa Công Việc Trên CentOS 8
-
Crontab Là Gì? Một Số Câu Lệnh Cơ Bản. - HOSTVN
-
Cron Job Là Gì? Cách Thiết Lập Cron Job Trong Linux | BKHOST
-
Hướng Dẫn Cài đặt Và Sử Dụng Crontab Linux Chi Tiết - Mua Key
-
Linux Crontab Với Các Ví Dụ Về Cron Jobs
-
Linux Cron Là Gì? Hướng Dẫn Cài Đặt Linux Cron - VinaHost
-
Crontab Trong Linux: VÍ DỤ Lập Lịch Công Việc - SoftGeek
-
Cách Sử Dụng CronTab Linux Update 2020 - Ciscolinksys