Por que não rsync em vez disso? Você pode ter que instalá-lo (use o gerenciador de pacotes), mas é feito para esse tipo de coisa.
RSYNC_PASSWORD='password' rsync -rtv /path/to/dir/ [email protected]:remote/dir
-r recursivamente rsync, -t preserva os carimbos de hora para que os arquivos existentes não sejam novamente carregados (efetivamente) e -v seja detalhado.
Se você criar e copiar sua chave pública ssh, não será necessário fazer a parte RSYNC_PASSWORD='password'
.
Se você não tiver uma combinação de chaves pública / privada, execute:
ssh-keygen
Então
ssh-copy-key-id [email protected]
Isso pressupõe que seu servidor remoto suporte a conexão e atualização do arquivo $HOME/.ssh/authorized_keys
; caso contrário, você terá que fazer o upload manual do arquivo authorized_keys
com sua chave pública.
Isso pressupõe que você esteja executando uma versão recente do linux. Sistemas Unix como o Mac OS não possuem o ssh-copy-key-id
. Veja mais algumas informações sobre como gerar e instalar sua chave pública em um host remoto: