Linux cung cấp một bộ công cụ mạnh mẽ để tìm kiếm, kiểm soát thời gian truy cập/tác động, hiển thị cấu trúc thư mục, truyền tệp và tự động hóa sao lưu. Dưới đây là hướng dẫn thực hành tập trung vào các thao tác thiết yếu.
Tìm kiếm tệp bằng find
Câu lệnh find cho phép duyệt hệ thống tệp theo nhiều tiêu chí đồng thời:
- Theo tên:
find /var/log -name "syslog*"— tìm các tệp bắt đầu bằngsyslogtrong/var/log. - Theo loại:
find /home -type d -name "Documents"— chỉ tìm thư mục có tênDocuments. - Theo thời gian sửa đổi:
find /tmp -mtime 0— tệp được chỉnh sửa trong vòng 24 giờ qua.
find /data -mtime +7— tệp chưa được sửa trong hơn 7 ngày. - Theo kích thước:
find /opt -size +500M— tệp lớn hơn 500 MB.
find /tmp -size 1G— tệp đúng bằng 1 GB (không dùng dấu+hay-). - Kết hợp xử lý:
find /var/tmp -name "*.log" -mtime +30 -exec gzip {} \;— nén tất cả tệp nhật ký cũ hơn 30 ngày.
Quản lý thời điểm sửa đổi tệp
Dùng stat để kiểm tra chi tiết thời gian:
stat /etc/hosts
Kết quả hiển thị ba mốc: Access (truy cập), Modify (sửa đổi nội dung), Change (thay đổi metadata). Để đặt lại thời điểm Modify, sử dụng touch:
touch -m -d "2023-09-22 14:30:00" /tmp/archive.log
Nếu tệp chưa tồn tại, lệnh này sẽ tạo mới và gán thời gian; nếu đã có, chỉ cập nhật thời điểm sửa đổi.
Hiển thị cấu trúc thư mục dạng cây
Cài đặt và sử dụng tree để trực quan hóa tổ chức thư mục:
yum install -y tree
tree -L 2 /usr/local
Tùy chọn -L 2 giới hạn độ sâu hiển thị ở hai cấp con — hữu ích khi phân tích thư mục có nhiều tầng lồng nhau.
Truyền tệp an toàn qua SSH với scp
scp hoạt động dựa trên giao thức SSH, đảm bảo tính toàn vẹn và bảo mật:
- Tải về từ máy chủ:
scp user@10.0.1.5:/var/backups/db.sql.gz ~/downloads/
scp -r user@10.0.1.5:/srv/app/configs/ ~/configs/— tải thư mục đệ quy. - Tải lên máy chủ:
scp ~/reports/q3.pdf user@10.0.1.5:/var/www/html/reports/
Lưu ý: luôn thêm cờ -r khi làm việc với thư mục; thiếu cờ này sẽ gây lỗi.
Tạo tệp mẫu có kích thước chính xác
Dùng dd để sinh tệp kiểm thử nhanh — đặc biệt hữu ích khi kiểm tra hiệu năng I/O hoặc phân bổ không gian đĩa:
dd if=/dev/zero of=/tmp/testfile.img bs=1MiB count=2048
Lệnh trên tạo tệp nhị phân testfile.img dung lượng đúng 2048 MiB (≈ 2 GB) từ nguồn dữ liệu null. Tham số bs xác định khối đọc/ghi, count xác định số khối — nhân hai giá trị ra kích thước cuối cùng.
Tự động sao lưu định kỳ với cron và tar
Kết hợp crontab với tar để duy trì bản sao nhất quán của thư mục hệ thống:
- Xác định đường dẫn đầy đủ tới
tar:which tar→ thường là/usr/bin/tar. - Mở trình soạn thảo crontab:
crontab -e. - Thêm dòng sau để nén
/etcmỗi giờ với tên tệp chứa dấu thời gian:
0 * * * * /usr/bin/tar -cf /backup/etc-$(date +\%Y\%m\%d-\%H\%M).tar /etc/ 2>/dev/null
Mỗi lần chạy, lệnh tạo một tệp .tar riêng biệt (ví dụ: etc-20240715-1400.tar). Ký tự % trong date phải được escape bằng dấu chéo ngược đơn (\%) để tránh bị cron hiểu sai.