Esta é uma tentativa de responder como, usando bash
ou zsh
Em zsh
, a função precmd
é semelhante a PROMPT_COMMAND
in bash
, pois é executada antes de cada novo prompt.
Um exemplo usando o 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
Um exemplo usando zsh:
% function precmd() {
echo ssh copy the files to another machine
}
% pwd
/home/jmunsch
ssh copy the files to another machine
% unset -f precmd
Adicione isso ao .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
}
Para o .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"
Para tornar mais fácil fazer isso
- Login do ssh com base na chave de configuração ou login sem senha.
- Adicione nomes de host / nomes de usuários ao
.ssh/ssh_config
.
relacionado:
Algumas suposições sobre o uso aqui, é que apenas 1 pessoa está usando 1 sessão por vez, todas as máquinas estão online e todos os históricos são atualizados com sucesso.
Você pode adicionar algumas etapas adicionais para mesclar históricos ou manter a ordem dos históricos.
Usando o git:
- digite um comando
- confirmar alterações
- enviar alterações ao repo
- em qualquer outra máquina, receba alterações
Não é um problema trivial, pelo que entendi. Digamos, por exemplo, que você faça login em duas máquinas com o mesmo histórico, mas digite dois comandos diferentes ao mesmo tempo; ambos os comandos são salvos, as histórias divergem, sobrescrevem umas às outras?
Para pesquisas adicionais, analise consistência / consenso distribuído: