Crontab là gì

      42

1. Cron là gì?

Cron là một trong tiện ích được cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chính sách nền của hệ thống. Crontab (CRON TABle) là 1 trong file tiềm ẩn bảng biểu (schedule) của những entries được chạy.

Bạn đang xem: Crontab là gì


Học VPS mới bổ sung cập nhật công rứa tạo Crontab với đồ họa trực quan, siêu dễ sử dụng. Mời chúng ta tham khảo.

2. Cron thao tác thế nào?

Một cron schedule dễ dàng là một text file. Mọi cá nhân dùng gồm một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không có thể chấp nhận được bạn sinh sản hoặc chỉnh sửa trực tiếp với ngẫu nhiên trình text editor nào, trừ phi bạn dùng lệnh crontab.

Một số lệnh thường xuyên dùng:

crontab -e: tạo hoặc chỉnh sửa file crontab crontab -l: hiển thị file crontab crontab -r: xóa file crontabHầu hết toàn bộ VPS hầu như được thiết đặt sẵn crontab, tuy nhiên vẫn có trường vừa lòng VPS không có. Nếu khách hàng sử dụng lệnh crontab -l nhưng thấy output trả lại -bash: crontab: command not found thì nên cần tự thiết lập crontab thủ công.

Cài để crontab

Sử dụng lệnh:

yum install cronieStart crontab và tự động chạy mọi khi reboot:

service crond startchkconfig crond on

3. Cấu tạo của crontab

Một crontab file bao gồm 5 trường xác định thời gian, sau cuối là lệnh sẽ được chạy định kỳ, kết cấu như sau:

* * * * * command to be executed- - - - -| | | | || | | | +----- day of week (0 - 6) (Sunday=0)| | | +------- month (1 - 12)| | +--------- day of month (1 - 31)| +----------- hour (0 - 23)+------------- min (0 - 59)Nếu một cột được gán ký tự *, nó tức là tác vụ tiếp nối sẽ được chạy ở rất nhiều giá trị mang lại cột đó.

Ví dụ:

– Chạy script 30 phút 1 lần:

0,30 * * * * command– Chạy script 15 phút 1 lần:

0,15,30,45 * * * * command– Chạy script vào 3 giờ sáng từng ngày:

0 3 * * * command

4. Ví dụ thay thể

Giả sử mình viết một quãng script sao lưu toàn bộ thư mục /home/domain.com/public_html/ và gửi file nén .zip vào thư mục /root/ như sau:

#!/bin/bashzip -r /root/backup_domain.com_$(date +"%Y-%m-%d").zip /home/domain.com/public_html/ -qScript này bảo quản ở đường truyền /etc/backup.sh (gán quyền execute – chmod +x nếu là bash script).

Sau kia mình cho script này chạy thời hạn vào 15h đồ vật Hai và thứ Năm sản phẩm tuần bằng cách tạo một tệp tin crontab như sau:

crontab -eNhấn o (chữ o) nhằm thêm dòng mới với nội dung:

0 15 * * 1,4 sh /etc/backup.shĐể bảo quản và thoát bạn nhấn ESC, rồi gõ vào :wq nhấn Enter.

Cuối cùng, lưu giữ khởi động lại cron daemon:

/etc/init.d/crond restartNếu mong muốn dùng Editor nano sửa mang lại dễ thì các bạn dùng lệnh sau: EDITOR=nano crontab -e

Ví dụ khác

– Để crontab chạy mỗi phút một lần:

* * * * * sh /etc/backup.sh– Để crontab chạy 24h một đợt (vào nửa đêm):

0 0 * * * sh /etc/backup.sh– Để crontab chạy file PHP 24h một lần:

0 0 * * * /usr/bin/php /var/www/html/reset.php

5. Disable email

Mặc định cron giữ hộ email cho tất cả những người thực thi cron job, nếu bạn có nhu cầu tắt chức năng gửi thư điện tử này đi thì hãy thêm đoạn sau vào cuối dòng

>/dev/null 2>&1Ví dụ:

0 15 * * 1,4 sh /etc/backup.sh >/dev/null 2>&1

6. Sinh sản log file

Để lưu log vào file:

30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log

*

chào ad, cho khách hàng hỏi là mình gồm tạo 1 tệp tin sh nhằm backup mongo db với sync db được backup lên amazon s3. Lúc mình chạy file sh đó bằng tay thì db được backup cùng sau đó đồng hóa hóa được lên s3. Tuy vậy khi mình sử dụng crontab nhằm chạy thì db chỉ backup được tiếp đến thì không sync được. Trong tệp tin log có hiện aws: not found. Do dự mình đang gặp gỡ vấn đề gì. Cám ơn ad


*

Lệnh sync vào SH bạn để như thế nào? vị qua crontab phải xác định đúng lệnh sẽ dùng


*

Đây là văn bản cronjob:30 2 * * * sh /home/mongo_backup/backup.sh > /home/mongo_backup/logsBackup 2>&1Còn đay là văn bản file sh

mongodump -d dhk_db–out /home/mongo_backup/database_bk/db-bk-`date +\%d-\%m-\%Y` -u ‘user’ –authenticationDatabase ‘db’ –authenticationMechanism ‘SCRAM-SHA-1’ -p ‘1234’ &&aws s3 sync /home/mongo_backup/database_bk s3://bk/backup-db-servermongo &&echo “backupdata…”


*

cronjob của mình chạy cơ mà không giữ hộ mail về nhỉ?mình sẽ thêm cái mailto làm việc đầu tệp tin rồi mà lại vẫn k thấy nhờ cất hộ mail.

Xem thêm: Công Nghệ Raid Là Gì? Các Loại Raid Là Gì ? Các Loại Raid Phổ Biến

lệnh cron của chính mình là: 0 8,12,16,20 * * * cd /home/script && php ps.phpkiểm tra file log thì vẫn thấy tất cả chạy cron này


*

Toàn bộ nội dung ps.php không được thực thi hay chỉ loại mailto?


*

trạng thái cron thì vẫn chuyển động mà nó lại không chạy ,lệnh này thì không thực hiện được /etc/init.d/crond restart tìm kiếm cũng không thấy file đó tron folder lun .


*

Bạn rất có thể restart crontab bằngservice crond restartCòn cronjob không chạy thì bạn kiểm tra log trong /var/log/cron nhé


*

em centos7x của chính mình tìm ko ra /var/log/cron lun thất thoát ,cron mình kiểm tra lại vẫn hoạt động thông thường ,có lẽ cái shell bản thân viết có vụ việc ,mình vẫn không mò ra khi chạy file trược tiếp thì ẻm chạy bình thường ,khi chạy bằng cron thì nó vẫn chạy mà lại ko thấy kết quả ,đắng lòng thật cùng code tương đồng mà 1 vps chạy được 1 vps nó bị tễnh tễnh ,cảm ơn chúng ta nhiều nha .


*

Chào anh, em ước ao tạo 1 cron để truy cập vào website 30p 1 lần nhằm plugin pipes tự động hóa lấy tin theo thời gian đấy, thì em đề xuất viết cụ nào mang lại đúng hả anh?Đoạn code của em viết như phía dưới, nhưng chần chờ có đúng không nào a? Anh vui tươi giải đáp giúp em với ạ.(crontab -u root -l ; echo “*/30 * * * * /home/backup”) | crontab -u root –


*

Cho bản thân hỏi, giả dụ chạy 2 cron tương đương nhau cùng lúc được không?Vì crontab tối thiểu chạy 1 phút 1 lần, mình thích 30 giây nó chạy 1 lần.

Xin cảm ơn.


*

Làm cố kỉnh nào để hiểu rằng crontab đó gồm chạy không nhỉ Ad?Ví dụ từng 15m xóa cache 1 lần chẳng hạn.


*

Nếu vào lệnh mà có đoạn bắt nhập mật khẩu để ssh thì có tác dụng thê nào nhằm chạy được crontab vậy admin


*

Bạn crontab truy cập vào VPS khác? nắm bạn thiết lập SSH Keys rồi đăng nhập sử dụng SSH Keys vào câu lệnh luônCâu lệnh các bạn ntn?


*

Em em vẫn ý muốn dùng mật khẩu cùng chạy crontab, lệnh của em đang ssh vào:0,10 * * * * rsync –remove-source-files -avzhe ssh root

*

Muốn chế tác crontab curl theo giây, ví dụ như 10 giây request 1 lần thì viết vậy nào hồ hết người?


*

Có cách nào đến PHP nó tự sinh sản cronjob ko các bạn ơi.Ví dụ mình showroom 1 tác vụ nào bằng PHP rồi cho nó set tự chạy theo mình yêu ước ấy.Mình sở hữu xugame.biz dứt rồi áp dụng shell_exec(‘lệnh’); cơ mà không được


*

Ad cho hỏi, bạn muốn tạo 1 cronjob auto chèn một đoạn text vào 1 chỗ vd:File=”mình ao ước chèn đoạn text vào thân ” sinh hoạt trên thì câu lệnh gì nhỉ?


*

Luân mang lại hỏi phương pháp tạo 1 crontab tự động hóa reboot sever vào giờ cố định và thắt chặt hàng ngày dc ko ạ


*

Lệnh reboot là /sbin/reboot bạn nhé. Time các bạn tự tùy chỉnh cấu hình theo nhu cầuhttps://xugame.biz/crontab/


*

3 2 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 1,2,3,4,5,6,7,8,9,10,11,12 1,2,3,4,5,6,0 /sbin/reboot

Lệnh này ko biết đúng chưa các bạn nhỉ


*

mình mong mỏi lập lịch 3 giờ rebot 1 lần ấy bác


*

Anh mang đến em hỏi em chạy site cần chạy các cron thì nên dùng vps ram cao xuất xắc cpu cao ạ ?


*

tùy cái chuyển động cron của khách hàng nên các bạn test bắt đầu biết nhé


*

Em chạy Cron quét tường tầm 200 facebook ngừng chạy lượt thích cho loại ID ấy ạ trung bình 400like/ID ạ


*

Luân cho khách hàng hỏi ước ao tạo Crontab tự động rebot sever thì sử dụng câu lệnh làm sao ạ . 1 ngày một lần ấy


*

chào Ad, mình chế tạo 1 crontab chạy vào lúc 12h với 1 crontab chạy vào thời gian 12h03′, cho mình hỏi crontab đầu tiên chạy trung bình 30′ mới xong, khi đó crontab thứ hai có chạy đè lên crontab thiết bị 1 hay là không hay là 2 crontab này chạy song song, xin cảm ơn.


*

Mình chưa làm thế khi nào không rõ. Tuy thế mình nghĩ ok thôi, nhiều nhiệm của hệ điều hành và quản lý mà


*

nhờ chúng ta xem góp mình tạo ra cron này đúng tốt sai ạ.

30 23 * * * find /home/nginx/domains/hangmygiasi.net/public/wp-content/uploads/ -type d | sort | while read d; do echo “optimise directory: $d”; echo “/root/tools/optimise-images/optimise-images.sh optimise-cron-age $d”; /root/tools/optimise-images/optimise-images.sh optimise-cron-age $d; done > /dev/null

Link Tham khảo: https://github.com/centminmod/optimise-images#unattended-subdirectory-runs


*

Các crontab yêu mong lệnh thực thi được gọi từ mối cung cấp nhé bạn. Ví dụ trên SSH bạn cũng có thể gõ shutdown nhưng add vào crontab phải địa chỉ cửa hàng /sbin/shutdownVà trường hợp chúng ta nên viết thành script rồi đến crontab dòng script kia nhé