Zsh: 머신 간 일관된 기록

Zsh: 머신 간 일관된 기록

사용 사례: 소스 제어의 머신 간에 zsh 기록을 배포합니다.

zsh의 기록으로 이를 달성할 수 있습니까? 버전 제어 시스템 간에 기록을 동기화할 수 있습니까? 이는 명령을 다시 입력하고 빠른 추적을 방지하기 위한 것입니다.

답변1

당신이 원하는 것 같아요배쉬허브:

Bashhub는 모든 세션과 시스템에 입력된 모든 터미널 명령을 저장하고 모든 명령에 대한 강력한 쿼리를 제공합니다.

Bash 및 Zsh를 지원하고 모든 것에 대한 멋진 cli를 제공합니다.

편집하다:BashHub 서버를 실행하는 사람을 100% 신뢰하지 않고 비공개로 유지되어야 하는 명령이 있는 경우 다음을 수행해야 합니다.나만의 BashHub 서버 실행.

답변2

이것은 사용 방법 bash또는zsh

in zsh함수는 precmd각각의 새로운 프롬프트 전에 실행된다는 점에서 in과 유사합니다.PROMPT_COMMANDbash

Bash를 사용한 예:

$ function precmd() {
    echo ssh copy the files to another machine
}
$ export OLD_PROMPT=$PROMPT_COMMAND
$ unset PROMPT_COMMAND && export PROMPT_COMMAND="precmd; $PROMPT_COMMAND"
ssh copy the files to another machine
$ pwd
/home/jmunsch
ssh copy the files to another machine
$ export PROMPT_COMMAND=$OLD_PROMPT

zsh를 사용한 예:

% function precmd() {
    echo ssh copy the files to another machine
}
% pwd
/home/jmunsch
ssh copy the files to another machine
% unset -f precmd

다음 항목에 추가하세요 .zshrc.

function precmd() {
    # across terminals, sessions 
    setopt APPEND_HISTORY
    export machines="192.168.43.70 192.168.43.71 192.168.43.72"
    for m in $machines; do
        scp ~/.zsh_history $m:~/.zsh_history
    done
}

을 위한 .bashrc:

function precmd() {
    # since bash generally saves history on session exit
    history -a # append session to history
    history -c # clear session
    history -r # read from history
    export machines="192.168.43.70 192.168.43.71 192.168.43.72"
    for m in $machines; do
        scp ~/.zsh_history $m:~/.zsh_history
    done
}
export PROMPT_COMMAND="precmd; $PROMPT_COMMAND"

이 작업을 더 쉽게 하려면

  • 키 기반 SSH 로그인 또는 비밀번호 없는 로그인을 설정합니다.
  • 에 호스트 이름/사용자 이름을 추가합니다 .ssh/ssh_config.

관련된:

여기서 사용에 대한 몇 가지 가정은 한 번에 한 사람만 1개의 세션을 사용하고 모든 컴퓨터가 온라인 상태이며 모든 기록이 성공적으로 업데이트된다는 것입니다.

기록을 병합하거나 기록을 순서대로 유지하기 위해 몇 가지 추가 단계를 추가할 수 있습니다.

자식 사용:

  • 명령을 입력하다
  • 변경 사항 커밋
  • 변경 사항을 저장소에 푸시
  • 다른 모든 컴퓨터에서 변경 사항 가져오기

내가 이해하는 한 이것은 작은 문제가 아닙니다. 예를 들어, 동일한 기록을 사용하여 두 개의 컴퓨터에 로그인한 다음 동시에 두 개의 다른 명령을 입력합니다. 두 명령이 모두 저장되고 기록이 다르며 서로 덮어쓰나요?

분산된 일관성/합의를 추가로 조사하려면 다음을 수행하십시오.

관련 정보