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ế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy.
2. Cron làm việc thế nào?
Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron
. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab.
Một số lệnh thường 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 crontab
Hầu hết tất cả VPS đều được cài đặt sẵn crontab
, tuy nhiên vẫn có trường hợp OS không có. Nếu bạn sử dụng lệnh crontab -l
mà thấy output trả lại -bash: crontab: command not found
thì cần tự cài crontab thủ công.
Cài đặt crontab
Sử dụng lệnh:
yum install cronie
Start crontab và tự động chạy mỗi khi reboot:
service crond start chkconfig crond on
3. Cấu trúc của crontab
Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc 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ó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho 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 mỗi ngày:
0 3 * * * command
4. Ví dụ cụ thể
Giả sử mình viết một đoạn script sao lưu toàn bộ thư mục /home/domain.com/public_html/
và chuyển file nén .zip vào thư mục /root/
như sau:
#!/bin/bash zip -r /root/backup_domain.com_$(date +"%Y-%m-%d").zip /home/domain.com/public_html/ -q
Script này lưu lại ở đường dẫn /etc/backup.sh
(gán quyền execute – chmod +x
nếu là bash script).
Sau đó mình cho script này chạy định kỳ vào 15h thứ Hai và thứ Năm hàng tuần bằng cách tạo một file crontab như sau:
crontab -e
Nhấn o
(chữ o) để thêm dòng mới với nội dung:
0 15 * * 1,4 sh /etc/backup.sh
Để lưu lại và thoát bạn nhấn ESC, rồi gõ vào :wq
nhấn Enter.
Cuối cùng, nhớ khởi động lại cron daemon:
/etc/init.d/crond restart
Nếu muốn dùng Editor nano sửa cho dễ thì 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 lần (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 gửi email cho người thực thi cron job, nếu bạn muốn tắt chức năng gửi email này đi thì hãy thêm đoạn sau vào cuối dòng
>/dev/null 2>&1
Ví dụ:
0 15 * * 1,4 sh /etc/backup.sh >/dev/null 2>&1
6. Tạo log file
Để lưu log vào file:
30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log
7. QUẢN LÝ SERVICE CRON
RHEL/Fedora/CentOS:
Start cron service
To start the cron service, use:
/etc/init.d/crond start
OR RHEL/CentOS 5.x/6.x user:
service crond start
OR RHEL/Centos Linux 7.x user:
systemctl start crond.service
Stop cron service
To stop the cron service, use:
/etc/init.d/crond stop
OR RHEL/CentOS 5.x/6.x user:
service crond stop
OR RHEL/Centos Linux 7.x user:
systemctl stop crond.service
Restart cron service
To restart the cron service, use:
/etc/init.d/crond restart
OR RHEL/CentOS 5.x/6.x user:
service crond restart
OR RHEL/Centos Linux 7.x user:
systemctl restart crond.service
Ubuntu/Mint/Debian:
Debian Start cron service
To start the cron service, use:
/etc/init.d/cron start
OR
sudo /etc/init.d/cron start
OR
sudo service cron start
Debian Stop cron service
To stop the cron service, use:
/etc/init.d/cron stop
OR
sudo /etc/init.d/cron stop
OR
sudo service cron stop
Debian Restart cron service
To restart the cron service, use:
/etc/init.d/cron restart
OR
sudo /etc/init.d/cron restart
OR
sudo service cron restart
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
hoặc
https://bit.ly/oaz_fp
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle dataguard, oracle goldengate, oracle weblogic, oracle exadata, hoc solaris, hoc linux, hoc aix