Xoá logfile tự động với find và rm trong Linux

Có hai cách chính để xóa file theo thời gian trong Linux:

1. Sử dụng lệnh find và rm:

Lệnh find có thể được sử dụng để tìm các file dựa trên nhiều tiêu chí, bao gồm thời gian tạo, sửa đổi hoặc truy cập. Sau khi tìm thấy các file cần xóa, bạn có thể sử dụng lệnh rm để xóa chúng.

Ví dụ:

Xóa tất cả các file trong thư mục /home/user/data đã được sửa đổi hơn 30 ngày trước:

find /home/user/data -mtime +30 -type f -exec rm {} \;

Giải thích:

  • find /home/user/data: Tìm kiếm trong thư mục /home/user/data.
  • -mtime +30: Tìm các file đã được sửa đổi hơn 30 ngày trước. Thay dấu + bằng dấu – nếu muốn tìm file từ 30 ngày trước trở lại hiện tại, nếu muốn thay là phút thì đổi mtime thành mmin và tham số +/- tương tự.
  • -type f: Chỉ tìm các file thông thường (regular files).
  • -exec rm {} \;: Thực hiện lệnh rm cho mỗi file được tìm thấy.

2. Sử dụng công cụ quản lý file:

Nhiều công cụ quản lý file, như Nautilus hoặc Dolphin, có chức năng tìm kiếm và xóa file theo thời gian. Bạn có thể sử dụng các công cụ này để dễ dàng xóa file theo thời gian mà không cần phải sử dụng dòng lệnh.

Khi sử dụng lệnh find và rm, hãy cẩn thận với các tùy chọn bạn sử dụng. Lệnh rm sẽ xóa file vĩnh viễn và không thể khôi phục được.

Ngoài ra, bạn có thể sử dụng các công cụ lập lịch như cron để tự động xóa file theo thời gian. Điều này có thể hữu ích nếu bạn cần xóa file thường xuyên.

Ví dụ:

Thêm tác vụ crontab để xóa tất cả các file trong thư mục /home/user/data đã được sửa đổi hơn 30 ngày trước mỗi ngày: (hoặc có thể tạo file .sh chạy dạng script shell)

0 0 * * * find /home/user/data -mtime +30 -type f -exec rm {} \;

Giải thích:

  • 0 0 * * *: Chạy tác vụ vào lúc 00:00 mỗi ngày.
  • find /home/user/data -mtime +30 -type f -exec rm {} \;: Lệnh find giống như ví dụ trước.

Chúc bạn thành công!

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA), là người đang tập tành viết lách trên blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. #Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận