Quản lý tác vụ định kỳ và nén lưu trữ trong Linux

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út
  • at 14:30 tomorrow – 2:30 chiều ngày mai
  • at 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ày
  • 30 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

Thẻ: linux cron tar at shell-scripting

Đăng vào ngày 28 tháng 8 lúc 05:21