Những lệnh crontab thường dùng

Công Nghệ
Những lệnh crontab thường dùng
Bài viết được sự cho phép của tác giả Lê Chí Dũng Tổng quan Định nghĩa: Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ background của hệ thống Crontab (cron tab) là một file chứa đựng...

Bài viết được sự cho phép của tác giả Lê Chí Dũng

Tổng quan

  • Định nghĩa:
    • Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ background của hệ thống
    • Crontab (cron tab) là một file chứa đựng các thông tin config của schedule của các task được chạy
  • Mục đích bài này:
    •  Sử dụng cron job để chạy background process trên Server

Crontab trên Server

Crontab (cron table)

  • Trên server Cron files được lưu trong thư mục /var/spool/cron, cấu trúc giống như trên các os unix-like khác.
  • Các lệnh dùng với crontab:
crontab -e: tạo hoặc chỉnh sửa file crontab
crontab -l: hiển thị file crontab
crontab -r: xóa file crontab
  • Nếu server chưa có crontab cần install:
# Install:
yum install cronie
# Start crontab và tự động chạy mỗi khi reboot:
systemctl start crond
chkconfig crond on
  • Cấu trúc:
* * * * * owner command to execute 1
* * * * * owner command to execute 2
* * * * * owner command to execute 3
  • Giải thích
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday;
│ │ │ │ │                                       7 is also Sunday)
│ │ │ │ │
│ │ │ │ │
* * * * * owner command to execute

Setup schedule for cron tab

Schedule Description Format
yearly Run once a year at midnight of 1 January 0 0 1 1 *
monthly Run once a month at midnight of the first day of the month 0 0 1 * *
weekly Run once a week at midnight on Sunday morning 0 0 * * 0
daily Run once a day at midnight 0 0 * * *
hourly Run once an hour at the beginning of the hour 0 * * * *

Example

# Run a task for every Friday at 17:01pm
1 17 * * 5 /var/cron/pkgtabs/shutdown_server_and_go_drinking
 
# Run db_export_dump at 23:45 (11:45 PM) every Saturday
45 23 * * 6 /var/cron/pkgtabs/db_export_dump
 
# Run task for every hours
0 * * * * /var/cron/pkgtabs/send_mail

Config crontab

Để crontab tự động chạy cần kích hoạt và cấu hình crontab như sau:

crontab -e
 
# Sau đó nhập nội dung
# Chạy cron đơn giản, repeat theo từng giờ
crontab 0 * * * * $(OWNER) /var/share/point_tool/task1.sh
  
# Chạy cron tab theo từng phút, đồng thời tại lock để tránh trường hợp task chạy chồng lên nhau (task xữ lý chưa hết thời gian thì task sau đến thời điểm chỉ định sẽ không được chạy
crontab * * * * * $(OWNER) /usr/bin/flock -n /var/point_tool/cron/task2.lockfile php /var/share/point_tool/task2.php --minutely >> /var/log/cron/task2.log

Trong đó

  • /usr/bin/flock -n /path/to/lockfile tạo file lock cho task, chống chạy nhiều task một lúc
  • –minuly lock task theo phút

Execute crontab

Có thể start crontab ở console như sau:

# Run a task for every Friday at 17:01pm
1 17 * * 5 /var/cron/pkgtabs/shutdown_server_and_go_drinking
 
# Run db_export_dump at 23:45 (11:45 PM) every Saturday
45 23 * * 6 /var/cron/pkgtabs/db_export_dump
 
# Run task for every hours
0 * * * * /var/cron/pkgtabs/send_mail
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
Xem thêm Việc làm IT hấp dẫn trên Station D

Bài viết liên quan

Mock phương thức static trong Unit Test sử dụng PowerMock

Mock phương thức static trong Unit Test sử dụng PowerMock

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết này, mình sẽ hướng dẫn các bạn Mock các phương thức static trong Unit Test các bạn nhé! Nếu bạn nào chưa biết về Mock trong Unit Test thì mình có thể nói sơ qua...

By stationd
Oracle to Postgres, sự trỗi dậy của bầy voi!

Oracle to Postgres, sự trỗi dậy của bầy voi!

Bài viết được sự cho phép của tác giả Kiên Nguyễn Nay ngồi buồn nghĩ về quãng thời gian cày bừa với các dự án convert database ( từ Oracle sang Postgres ). Muốn chia sẻ chút kinh nghiệm nhỏ nhoi trên mặt này tới các bạn. Cài đặt PostgreSQL...

By stationd
Giới thiệu Web service – SOAP, WSDL và ASP.NET Web Service cơ bản

Giới thiệu Web service – SOAP, WSDL và ASP.NET Web Service cơ bản

Bài viết được sự cho phép của tác giả Lê Chí Dũng Hôm nay ôn lại bài web service vừa học trên lớp sẳn tìm kiếm thông tin về web service và mình vừa thu thập được một số thông tin hay về web service và share cho ace xem....

By stationd