nome de usuário e senha para rsync no script

6

Estou criando um cron job para manter dois diretórios em sincronia. Estou usando o rsync. Estou executando um daemon rsync . Eu li o manual e ele diz:

   RSYNC_PASSWORD
          Setting  RSYNC_PASSWORD  to  the required password allows you to
          run authenticated rsync connections to an rsync  daemon  without
          user  intervention. Note that this does not supply a password to
          a shell transport such as ssh.

   USER or LOGNAME
          The USER or LOGNAME environment variables are used to  determine
          the  default  username  sent  to an rsync daemon.  If neither is
          set, the username defaults to 'nobody'

Eu tenho algo como:

#!/bin/bash
USER=name
RSYNC_PASSWORD=pass
DEST="myhost::mymodule"

/usr/bin/rsync -rltvvv . $DEST

Eu também tentei exportar (perigoso, eu sei) USER e RSYNC_PASSWORD. Eu também tentei com o LOGNAME. Nada funciona. Estou fazendo isso corretamente?

EDIT (para esclarecimentos)

Estou usando a versão 2.6.9 do rsync no linux.

Este comando funciona:

/usr/bin/rsync -rltvvv . myuser@myhost::mymodule

A senha é solicitada e, quando eu digito, a transferência é iniciada.

Este é o erro que recebo ao tentar usar o script:

opening tcp connection to myhost port 873
opening connection using --server -vvvltr . mymodule
@ERROR: auth failed on module mymodule
rsync error: error starting client-server protocol (code 5) at main.c(1383) [sender=2.6.9]
_exit_cleanup(code=5, file=main.c, line=1383): about to call exit(5)
    
por d-_-b 29.03.2010 / 09:31

2 respostas

5

Você já tentou algo como:

rsync -rltvvv --password-file=/root/secret . user@host::dest
    
por 29.03.2010 / 09:43
3

Use export RSYNC_PASSWORD=pass em vez de RSYNC_PASSWORD=pass .

    
por 07.04.2011 / 14:52