2017-05-06 14 views
5

Khi tôi chạy ứng dụng khách mongo, nó lưu trữ lịch sử các lệnh trong $ HOME/.dbshell. Tôi không muốn đăng nhập bất kỳ lệnh nào từ Mongo.Cách tắt tệp lịch sử mongo .dbshell

Làm cách nào để tắt hành vi ghi vào tệp .dbshell? Tôi không muốn viết nó vào/tmp, tôi muốn tránh nó viết ở bất cứ đâu.

Trang này không cung cấp thông tin hữu ích here.

Trả lời

10

Tại MongoDB 3.4, không có tùy chọn rõ ràng để tắt tính năng lịch sử mongo vỏ.

Cách giải quyết có thể là làm cho tệp lịch sử chỉ đọc. Vỏ mongo hiện sẽ tiếp tục mà không có lỗi nếu không thể đọc hoặc ghi tệp .dbshell.

Ví dụ, trên một hệ thống Unix-like:

# Ensure an empty history file 
echo "" > ~/.dbshell 

# Remove rwx access to the history file 
chmod 0 ~/.dbshell 

tôi đã nêu ra một đề xuất tính năng cho điều này trong vấn đề theo dõi MongoDB mà bạn có thể xem, phiếu bầu tán thành, hoặc nhận xét về: SERVER-29103: Add option to disable writing shell history to .dbshell.

-1

Bạn có thể kiểm soát nơi tệp này sẽ được tạo.

Vì vậy, hãy xem here.

void shellHistoryInit() { 
    stringstream ss; 
    const char* h = shell_utils::getUserDir(); 
    if (h) 
     ss << h << "/"; 
    ss << ".dbshell"; 
    historyFile = ss.str(); 

    linenoiseHistoryLoad(historyFile.c_str()); 
    linenoiseSetCompletionCallback(completionHook); 
} 

vì vậy nếu bạn quay trở lại giá trị falsy từ chức năng này các tập tin không phải được tạo:

const char* getUserDir() { 
#ifdef _WIN32 
    return getenv("USERPROFILE");//make sure this is empty 
#else 
    return getenv("HOME"); 
#endif 
} 
+0

Rất tiếc - Tôi không muốn kiểm soát vị trí sẽ được tạo, tôi muốn tránh nó được tạo ở nơi đầu tiên. –

+0

đây là cách chúng triển khai nội bộ trong nguồn mongo –

Các vấn đề liên quan