Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

03 tháng 5, 2012

crontab trong Linux

Crontab trong linux tương tự như một tiến trình lập lịch, nó giúp người dùng có thể chỉ định khi nào thì hệ thống sẽ chạy một lệnh, kịch bản,.... đã định sẵn.
Tương ứng với mỗi người dùng sẽ có một crontab riêng.
Crontab sẽ không bị xóa khi hệ thống bị khởi động lại.
Crontab không hoạt động thay thế chức năng startup, và hoàn toàn không giống chức năng startup của hệ điều hành.
Để tạo mới, sửa một crontab, ta dùng lệnh sau:
crontab -e
Cấu trúc nội dung một crontab như sau:
Ví dụ: 0 12 14 2 * ls -l > /var/log/log.log
  • Mỗi lệnh trong crontab được đặt trong một dòng.
  • Comment được bắt đầu bằng ký tự "#"
  • Cấu trúc lệnh trong crontab:
    [min][space][hour][space][dayofmonth][space][monthofyear][space][dayofweek][space][command]
  • Trong đó:
    min: phút, (0-59)
    hour: giờ trong ngày, (0-23)
    dayofmonth: ngày trong tháng, (1-31)
    monthofyear: tháng trong năm, (1-12)
    dayofweek: ngày trong tuần (0-6, tương đương với Sunday-Saturday)
    command: là bất cứ lệnh hệ thống nào, cho phép gọi tới một file có quyền x.
  • Chú ý: crontab cho phép sử dụng các ký tự thay thế.
    Kiểu thay thế: * tương đương với bất cứ giá trị nào.
    Kiểu mỗi: */5 tương đương với cứ mỗi 5 đơn vị thời gian.
    Kiểu liệt kê: 2, 4, 6 cứ vào thời điểm 2, 4, 6 đơn vị thời gian.
    Kiểu khoảng: 9-17 lấy bất cứ giá trị nào nằm trong khoảng  từ 9 đến 17
Lệnh crontab:
crontab [-u user] [option] file
-u user: chỉ ra người dùng mà crontab của họ sẽ được chỉnh sửa.
-l : hiển thị nội dung crontab ra thiết bị hiển thị mặc định, ví dụ màn hình.
-r : xóa crontab.
-e : chỉnh sửa nội dung crontab ở chế độ soạn thảo.
-i : xóa crontab sau khi được người dùng chọn y/Y.
-s : unknow.

2 nhận xét:

  1. Có thể cho crontab chạy với vai trò của một user chỉ định dựa theo hướng dẫn này:
    http://stackoverflow.com/questions/8475694/how-to-specify-in-crontab-by-what-user-to-run-script

    Trả lờiXóa
    Trả lời
    1. Chính xác là không nên sử dụng kiểu crontab -e.
      Nên sửa trưc tiếp file /etc/crontab

      Xóa