Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh crontab để lên lịch các tác vụ định kỳ trong Linux. Lệnh crontab cho phép bạn tạo, chỉnh sửa và quản lý cron jobs, là các scripts hoặc lệnh chạy tự động theo các khoảng thời gian được chỉ định. Bạn sẽ bắt đầu bằng cách tìm hiểu về lệnh crontab và cách kiểm tra các cron jobs hiện tại. Sau đó, bạn sẽ tạo một script đơn giản và lên lịch để nó chạy mỗi phút bằng crontab. Cuối cùng, bạn sẽ học cách lên lịch một tác vụ sao lưu định kỳ bằng crontab.
Giới thiệu về Crontab
Trong bước này, bạn sẽ tìm hiểu về lệnh crontab, được sử dụng để lên lịch các tác vụ định kỳ trong Linux. Lệnh crontab cho phép bạn tạo, chỉnh sửa và quản lý cron jobs, là các scripts hoặc lệnh chạy tự động theo các khoảng thời gian được chỉ định.
Đầu tiên, hãy kiểm tra các mục crontab hiện tại cho người dùng labex
:
crontab -l
Ví dụ đầu ra:
No crontab for labex.
Như bạn có thể thấy, hiện tại không có cron jobs nào được lên lịch cho người dùng labex
.
Tiếp theo, hãy tạo một cron job mới chạy một script đơn giản mỗi phút. Tạo một file mới có tên hello.sh
trong thư mục ~/project
với nội dung sau:
#!/bin/bash
echo "Hello from cron job!"
Cấp quyền thực thi cho script:
chmod +x ~/project/hello.sh
Bây giờ, hãy thêm một cron job mới để chạy script này mỗi phút:
crontab -e
Thao tác này sẽ mở trình soạn thảo crontab. Thêm dòng sau vào cuối file:
* * * * * /home/labex/project/hello.sh
Cron job này sẽ chạy script hello.sh
mỗi phút.
Lưu và thoát trình soạn thảo crontab.
Để xác minh rằng cron job đang chạy, hãy đợi một phút và kiểm tra system log:
tail -n 5 /var/log/syslog
Bạn sẽ thấy thông báo "Hello from cron job!" trong log.
Lên lịch một tác vụ định kỳ với Crontab
Trong bước này, bạn sẽ học cách lên lịch một tác vụ định kỳ bằng lệnh crontab.
Đầu tiên, hãy tạo một script mới có tên backup.sh
trong thư mục ~/project
, script này sẽ thực hiện một thao tác sao lưu đơn giản:
#!/bin/bash
echo "Backing up data to backup.txt"
date >> ~/project/backup.txt
Cấp quyền thực thi cho script:
chmod +x ~/project/backup.sh
Bây giờ, hãy lên lịch để script này chạy mỗi 5 phút bằng crontab:
crontab -e
Thêm dòng sau vào trình soạn thảo crontab:
*/5 * * * * /home/labex/project/backup.sh
Cron job này sẽ chạy script backup.sh
mỗi 5 phút.
Lưu và thoát trình soạn thảo crontab.
Để xác minh rằng cron job đang chạy, hãy đợi 5 phút và kiểm tra file backup.txt
:
cat ~/project/backup.txt
Bạn sẽ thấy ngày và giờ hiện tại được thêm vào file mỗi 5 phút.
Quản lý các mục Crontab
Trong bước này, bạn sẽ học cách quản lý các mục crontab của mình, bao gồm liệt kê, chỉnh sửa và xóa cron jobs.
Đầu tiên, hãy liệt kê tất cả các mục crontab hiện tại cho người dùng labex
:
crontab -l
Bạn sẽ thấy hai cron jobs mà bạn đã tạo trong các bước trước:
* * * * * /home/labex/project/hello.sh
*/5 * * * * /home/labex/project/backup.sh
Để chỉnh sửa crontab, hãy sử dụng lệnh sau:
crontab -e
Thao tác này sẽ mở trình soạn thảo crontab, nơi bạn có thể thêm, sửa đổi hoặc xóa các mục cron job.
Hãy thử xóa cron job hello.sh
. Trong trình soạn thảo crontab, tìm dòng * * * * * /home/labex/project/hello.sh
và xóa nó. Lưu và thoát trình soạn thảo.
Để xác minh rằng cron job hello.sh
đã bị xóa, hãy chạy lại lệnh sau:
crontab -l
Bạn sẽ chỉ thấy cron job backup.sh
còn lại.
Bây giờ, hãy vô hiệu hóa cron job backup.sh
bằng cách thêm dấu #
vào đầu dòng:
crontab -e
Thêm dấu #
vào đầu dòng */5 * * * * /home/labex/project/backup.sh
. Lưu và thoát trình soạn thảo.
Để xác minh rằng cron job backup.sh
đã bị vô hiệu hóa, hãy chạy lệnh sau:
crontab -l
Bạn sẽ thấy dòng cho backup.sh
với dấu #
ở đầu, cho biết rằng nó hiện đã bị vô hiệu hóa.
Tóm tắt
Trong lab này, bạn đã tìm hiểu về lệnh crontab, được sử dụng để lên lịch các tác vụ định kỳ trong Linux. Bạn bắt đầu bằng cách kiểm tra các mục crontab hiện tại cho người dùng labex
và thấy rằng không có cron jobs nào được lên lịch. Sau đó, bạn đã tạo một script đơn giản có tên hello.sh
và thêm một cron job mới để chạy nó mỗi phút. Để xác minh rằng cron job đang chạy, bạn đã kiểm tra system log và thấy thông báo "Hello from cron job!". Tiếp theo, bạn đã tạo một script mới có tên backup.sh
, script này sẽ thực hiện một thao tác sao lưu đơn giản và bạn đã lên lịch để nó chạy mỗi 5 phút bằng crontab.