bash 기록을 정기적으로 저장하십시오.


9

기록을 파일로 저장하도록 bash를 설정했습니다. 이것은 bash가 [적절하게] 종료 될 때마다 수행됩니다. 때때로 bash가 올바르게 종료되지 않으므로 기록이 손실됩니다.

문제는 더 정기적으로 기록을 저장하기 위해 bash를 설정할 수 있습니까?


Linux 커널로 Debian Gnu (버전 6, Squeeze)를 실행하고 있습니다.

bash 버전 : GNU bash, 버전 4.1.5 (1)-릴리스 (i486-pc-linux-gnu)

답변:


8

이것을 bash_profile 또는 bashrc에 저장하십시오.

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"


이것은 여전히 ​​유효한 답변입니까? 내 시스템에는 shopt -s histappend아래 에 항목 이 /etc/bash/bashrc있습니다. 여전히 실행중인 쉘의 부정확 한 종료는 명령 행 히스토리를 잃습니다.
Nikos Alexandris

-1

$ HISTFILE이 루트가 소유하고있을 가능성이 있습니다. 로그인 쉘로 bash를 사용한다고 가정합니다. 확인하는 방법은 다음과 같습니다.

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

HISTFILE의 기본값은 ~ / .bash_history입니다. "HISTFILE을 설정해야합니다"오류가 표시되거나 $ HISTFILE이 ~ / .bash_history가 아닌 경우 ~ / .profile 또는 ~ / .bash_profile 또는 ~ /을 확인해야합니다. bashrc가 잘못 설정되거나 재설정되지 않았는지 확인하십시오.

일반적으로 루트가 소유하고 있으므로 재설정하십시오.

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

로그 아웃 한 후 로그인하십시오.

$ history

루트가 파일을 소유하기 전에 입력 한 마지막 명령 세트와 파일 소유권이 변경된 후 입력 한 명령을 표시해야합니다.


3
OP는 bash가 정상적으로 종료되면 기록이 저장된다고 말하므로 그의 문제는 권한과 관련이 없습니다. 아마도 당신의 대답은 bash 기록에 문제가있는 사람에게 여전히 유용 할 수 있습니다.
Dmitry Grigoryev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.