rm -rf
là một lệnh Bash tương tự như lệnh DROPLệnh SQL. Trừ khi bạn có một bản sao (sao lưu) của bảng cơ sở dữ liệu, nếu không bạn sẽ mất tất cả dữ liệu.
rm -rf là một lệnh khi được gọi mà không có quyền root sẽ xóa tất cả các thư mục mà người dùng có quyền truy cập. Khi được gọi với quyền root, nó sẽ xóa sạch ổ cứng của bạn.
Tôi chưa từng may mắn mắc lỗi chạy mã này trên máy chủ sản xuất trước đây, nhưng không phải ai cũng may mắn như vậy. Dưới đây là một số rm -rf câu chuyện thú vị mà bạn có thể thấy liên quan.
1. Thomas & Chương trình Thùng rác dựa trên CLI
Thomas đang ở trong phòng thí nghiệm Unix của trường Đại học để thực hiện một dự án giữa kỳ mà anh ấy đã được kết nối với một máy chủ trong phòng thí nghiệm liền kề bằng cách sử dụngPuTTY + RealVNC.
Dự án của anh ấy rất đơn giản: Tạo một chương trình CLI “trash” lấy danh sách các đường dẫn tệp và di chuyển chúng tới một~/.trash
thư mục. Sau đó, bạn có thể “dọn sạch thùng rác” để thực thi rm trên thư mục. Anh ấy đã hoàn thành phần đầu tiên và đang hoàn thành lệnh trống.
Bằng cách nào đó, anh ấy đã đặt sai biến khiến đường dẫn xóa thành /
và anh ấy có quyền truy cập sudo. Lúc đầu, không có gì xảy ra khi anh ấy chạy mã nhưng ngay sau đó nó trở nên trục trặc và bắt đầu hiển thị tĩnh. Ctrl + C không giúp được gì. Tiếp theo, màn hình chuyển sang màu trắng và bị ngắt kết nối.
Mã của anh ấy chạy sudo rm-rf /
và xóa tất cả dữ liệu trên máy chủ. May mắn cho Thomas, anh ấy đang làm việc trên máy chủ thử nghiệm của bộ và có thể khôi phục dữ liệu từ đĩa sao lưu. Anh ấy đã không bị mất quyền nhập học.
2. Xóa sạch trong phiên sao lưu
Alex là quản trị viên mạng tại một công ty sao lưu máy của họ thông qua tập lệnh. Vào một ngày định mệnh Friday, anh ấy đã nâng cấp tập lệnh bằng văn bản, rm -rf ${DIRECTERY}/
thay vì
rm -rf ${DIRECTORY}/ – chỉ cập nhật lệnh thành
rm-rfvì ${DIRECTERY} đã trở thành chuỗi rỗng.
Phiên sao lưu bắt đầu vào tối hôm đó và trước khi Alex biết điều đó, tất cả các máy trên mạng đã bị xóa sạch! May mắn cho anh ta, công ty sao lưu các tập tin mỗi giờ nên không có thiệt hại lớn.Mặc dù vậy, đó là một ngày cuối tuần bận rộn. Khá mỉa mai là một công việc sao lưu sẽ xóa sạch hệ thống, phải không?
3. Trình dọn dẹp đệ quy tự động
Một lần Eric đang làm việc trên một máy chủ tệp và muốn tự động dọn sạch một số tệp mỗi tuần hoặc lâu hơn. Anh ấy đã lên kế hoạch cho dòng của mình và thử nghiệm nó với mục đích chỉ xóa các tệp tương đối cũ hơn. Công việc của anh ấy nằm trong một thư mục duy nhất nên anh ấy không nghĩ rằng có thể xảy ra sai sót. Chà, sau đó anh ấy mới biết mình đã đoán sai.
Anh ấy đã chạy lệnh sau và nó đã hoạt động. Tiếp theo, anh ấy thêm dòng trong crontab theo cách thủ công và đó là lúc anh ấy thay thế nhầm .
bằng / .
tìm thấy . -type f -name-ctime -60 -exec rm -rf {} \;
Tua nhanh đến một tuần sau và một số lượng đáng kể các tệp đã biến mất. Điều tồi tệ hơn là chúng bị xóa có vẻ như là một kiểu ngẫu nhiên nên anh ấy nghĩ rằng công ty đã bị tấn công cho đến khi anh ấy chạy kiểm tra mã và nhận ra mình là tin tặc.
May mắn thay, anh ấy đã sao lưu bên ngoài hàng ngày để có thể sửa lỗi của mình. Kể từ ngày đó, bạn có thể cá là anh ấy đã cực kỳ cẩn thận với các lệnh anh ấy chạy với đặc quyền của quản trị viên.
2 điểm cần lưu ý chính trong các câu chuyện trên là 1, luôn kiểm tra kỹ mã của bạn và tác động có thể có của nó và 2, luôn giữ các bản sao lưu của bạn ở mức hiện tại nhất có thể vì bạn không bao giờ biết khi nào chúng sẽ có ích.
Bạn có biết câu chuyện rm -rf điên rồ nào từ kinh nghiệm hoặc từ nơi khác không? Chia sẻ chúng với chúng tôi trong phần nhận xét.