Tác vụ định kỳ trong Linux
Linux cung cấp hai công cụ chính để thực hiện các tác vụ theo lịch: at cho tác vụ một lần và crontab cho tác vụ lặp lại theo chu kỳ.
Sử dụng at cho tác vụ một lần
Đầu tiên, cài đặt và khởi động dịch vụ atd:
[root@host ~]# yum install -y at
[root@host ~]# systemctl enable --now atd
Tạo một tác vụ chạy lúc 10:00 sáng:
[root@host ~]# at 10:00
at> echo "Task executed" >> /tmp/at_job.log
at> <EOT>
job 2 at Mon Jun 10 10:00:00 2024
Xem và xóa tác vụ:
[root@host ~]# atq
2 Mon Jun 10 10:00:00 2024 a root
[root@host ~]# atrm 2
Một số cú pháp thời gian linh hoạt:
at now +15 minutes– sau 15 phútat 14:30 tomorrow– 2:30 chiều ngày maiat 9:00am 2024-12-25– vào sáng Giáng sinh
Sử dụng crontab cho tác vụ định kỳ
Dịch vụ crond thường đã được bật sẵn. Kiểm tra bằng:
[root@host ~]# systemctl is-active crond
Cú pháp của cron job:
phút giờ ngày tháng thứ lệnh
Ví dụ:
0 2 * * * /usr/bin/backup.sh– chạy backup lúc 2 giờ sáng mỗi ngày30 8 * * 1-5 /usr/bin/check_mail.sh– kiểm tra mail lúc 8:30 sáng từ thứ Hai đến thứ Sáu*/5 * * * * /usr/bin/monitor.sh– chạy mỗi 5 phút
Chỉnh sửa cron job cho người dùng hiện tại:
[root@host ~]# crontab -e
Ví dụ thực tế: ghi log mỗi phút
* * * * * echo "$(date): ping check" >> /var/log/ping_monitor.log
Xem và xóa toàn bộ cron job:
[root@host ~]# crontab -l
[root@host ~]# crontab -r
Nén và lưu trữ với tar
Lệnh tar dùng để tạo hoặc giải nén tập tin lưu trữ (archive), thường kết hợp với các thuật toán nén như gzip hoặc bzip2.
Tạo archive nén bằng gzip
[root@host ~]# mkdir -p /data/logs
[root@host ~]# touch /data/logs/{app,sys,auth}_{1..5}.log
[root@host ~]# tar -czvf logs_backup.tar.gz /data/logs/
Giải nén archive
[root@host ~]# rm -rf /data/logs/*
[root@host ~]# tar -xzvf logs_backup.tar.gz -C /
Kiểm tra nội dung archive mà không giải nén
[root@host ~]# tar -tzvf logs_backup.tar.gz
Các tùy chọn phổ biến:
-c: tạo archive mới-x: trích xuất file-t: liệt kê nội dung-z: sử dụng gzip-j: sử dụng bzip2-v: hiển thị chi tiết-f: chỉ định tên file archive