Tệp batch tự động dọn dẹp nhưng tự phá hủy bằng cách xóa nhầm thư mục System32
Một nhân viên IT viết tệp batch để dọn dẹp Exchange Server hàng tuần, nhưng do thiếu đường dẫn cụ thể, lệnh DEL *.* đã xóa toàn bộ thư mục System32 trên Windows NT 4, khiến máy chủ phải dựng lại hoàn toàn. Câu chuyện từ The Register là bài học kinh nghiệm về kiểm thử kỹ lưỡng và rủi ro tự động hóa trong quản trị hệ thống.

Tệp batch tự động dọn dẹp nhưng tự phá hủy bằng cách xóa nhầm thư mục System32
Một kỹ sư IT đã viết tệp batch để tự động dọn dẹp Exchange Server, nhưng chỉ vì thiếu một tham số đường dẫn, hệ thống Windows NT 4 đã bị "lobotomy" và không thể cứu vãn. Sự cố này dù khiến anh mất gần trọn cuối tuần để khôi phục, nhưng ít nhất anh cũng nhận được mức lương tăng gấp đôi cho công sức sửa chữa.
Câu chuyện được chia sẻ trên chuyên mục "Who, Me?" của The Register, kể về một độc giả được gọi là "Pascal" - người từng làm việc tại một công ty vừa trang bị máy chủ Exchange đầu tiên cho khoảng 600 hộp thư.
Kế hoạch dọn dẹp hàng tuần
Theo Pascal, quản lý IT của công ty rất quan tâm đến hiệu suất của Information Store và đề xuất đưa máy chủ offline mỗi tuần một lần để chống phân mảnh.
"Quản lý IT cho rằng việc này là cần thiết để duy trì hiệu suất," Pascal chia sẻ.
Nghe có vẻ hợp lý, Pascal đã viết một tệp batch để tự động hóa quy trình: dừng Information Store, chạy lệnh eseutil /d để nén cơ sở dữ liệu, xóa các tệp tạm thời phát sinh trong quá trình, rồi khởi động lại dịch vụ.
Tệp batch được kiểm thử thành công và thực sự giúp giảm kích thước của Store. Vì vậy, Pascal lên lịch chạy vào tối thứ Sáu và nghỉ cuối tuần.
Thảm họa cuối tuần
Chưa đầy vài giờ sau, điện thoại của Pascal liên tục đổ chuông với báo cáo Exchange ngừng hoạt động.
"Tôi lái xe vào công ty và phát hiện máy chủ Windows NT 4 không còn hoạt động bình thường. Hầu như mọi thứ đều không chạy được, và các dịch vụ Exchange đã dừng hoàn toàn," Pascal kể lại.
Nguyên nhân nhanh chóng được tìm ra: trong tệp batch có lệnh DEL . nhưng không chỉ định đường dẫn thư mục cụ thể. Khi chạy, hệ thống đã thực thi lệnh này từ thư mục System32, dẫn đến việc xóa sạch toàn bộ các tệp hệ thống quan trọng.
"Tệp batch của tôi đã xóa hầu hết các tệp trong System32, khiến Windows NT 4 gần như bị 'lobotomy' và máy chủ không thể cứu chữa. Tôi phải dựng lại toàn bộ và khôi phục dữ liệu, mất gần hết cuối tuần," Pascal viết.
Bài học đắt giá nhưng cũng không quá tệ
Nhìn lại, Pascal thừa nhận đây không phải là giờ phút vinh quang nhất trong sự nghiệp của anh. Tuy nhiên, bù lại, anh nhận được mức lương gấp đôi cho công việc sửa chữa cuối tuần. Ít nhất, sự việc này đã không "xóa sổ" sự nghiệp của anh.
Câu chuyện này là lời nhắc nhở quan trọng cho các quản trị viên hệ thống: kiểm thử kỹ lưỡng trong môi trường thực tế là điều tối quan trọng, đặc biệt với các tác vụ tự động hóa có quyền xóa dữ liệu. Việc sử dụng các lệnh nguy hiểm như DEL . mà không có đường dẫn cụ thể luôn tiềm ẩn rủi ro khôn lường, dù đã được kiểm thử trước đó.