Eu tenho um diretório chamado "secure" que eu montei no meu laptop via sshfs sempre que o servidor está ao alcance.
Enquanto este servidor estiver ao alcance, quero mantê-lo em sincronização bidirecional com um diretório chamado "sync".
O diretório "seguro" é montado com o pam_mount no login e desmontado no logout. Eu configurei o pam_script para criar um link simbólico para "sincronizar" quando a montagem falhar e para remover o link ao desmontar.
Na minha primeira tentativa, corri uníssono com o pam_script:
#!/bin/bash
#pam_script_ses_open (runs at the start of a session)
home='eval echo ~$PAM_USER'
secure=$home/secure
sync=$home/sync
if mount|grep "$secure"; then
echo Synchronizing with server $sync : $secure
unison "file://$sync" "file://$secure"
else
ln -s "$sync" "$secure"
fi
E no final da sessão:
#!/bin/bash
userid=$PAM_USER
home='eval echo ~$userid'
secure=$home/secure
sync=$home/sync
if mount|grep "$secure"; then
echo Synchronizing with server
unison "file://$sync" "file://$secure"
else
rm "$secure"
fi
Ambos os scripts são executados na raiz.
No logout , os dois diretórios são sincronizados bem.
No login , recebo a seguinte mensagem de erro:
Sincronizando com o servidor / home / users / user / sync: / home / users / usuário / secure
Entrando em contato com o servidor ...
Erro fatal: Número errado de raízes: 2 esperado, mas 4 fornecidas (ssh: // usuário @ servidor /, / home / usuários / usuário, arquivo: /// home / users / user / secure, file: / // home / users / user / sync)
(Você especificou raízes tanto na linha de comando quanto no perfil?)
Eu verifiquei que nenhum diretório ".unison" existe em qualquer diretório home de usuários e fiz o apt-get purgar unison seguido por um unison de instalação do apt-get.
Eu não estou totalmente feliz em usar o uníssono dessa maneira (mesmo que funcionasse) porque ele só seria sincronizado no login e logout. Não seria uma sincronização ao vivo.
Como posso obter o sshfs ou o fstab para iniciar uma sincronização ao vivo sempre que o diretório é montado ou, se isso não for possível, por que o unison está falhando na configuração atual?
Estou procurando uma solução limpa e robusta.