2017-05-06 24 views
5

Kiedy uruchamiam klienta mongo, zapisuje on historię poleceń w pliku $ HOME/.dbshell. Wolałbym nie rejestrować żadnych poleceń z Mongo.Jak wyłączyć plik historii pliku mongo .dbshell

Jak wyłączyć zachowanie zapisywane w pliku .dbshell? Nie chcę zapisywać go w/tmp, chcę uniknąć zapisywania go w dowolnym miejscu.

Ta strona nie zawiera przydatnych informacji here.

Odpowiedz

10

Na MongoDB 3.4, nie ma wyraźnego opcja aby wyłączyć funkcję historii mongo powłoki.

Możliwe rozwiązanie polega na tym, aby plik historii był tylko do odczytu. Powłoka mongo będzie obecnie kontynuowana bez błędu, jeśli nie można odczytać ani zapisać pliku .dbshell.

Na przykład, w systemie Unix-like:

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

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

mam podniesione sugestię funkcji dla tego w wydaniu tracker MongoDB, które można oglądać, upvote lub uwag na temat: SERVER-29103: Add option to disable writing shell history to .dbshell.

-1

Możesz kontrolować, gdzie ten plik zostanie utworzony.

Więc spójrz na 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); 
} 

więc jeśli powrót wartość falsy z tej funkcji plik nie powinny być tworzone:

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

Przepraszam - nie chcę kontrolować, gdzie zostanie utworzony, chcę go w ogóle uniknąć. –

+0

tak to implementują wewnętrznie w źródle mongo –