Назад | Перейти на главную страницу

имя пользователя и пароль для rsync в скрипте

Я создаю задание cron, чтобы синхронизировать два каталога. Я использую rsync. Я использую rsync демон. Я прочитал инструкцию, и там написано:

   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'

У меня что-то вроде:

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

/usr/bin/rsync -rltvvv . $DEST

Я также пробовал экспортировать (опасно, я знаю) USER и RSYNC_PASSWORD. Я также пробовал с LOGNAME. Ничего не работает. Я правильно это делаю?

РЕДАКТИРОВАТЬ (в целях разъяснения)

Я использую rsync версии 2.6.9 под Linux.

Эта команда работает:

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

Мне предлагается ввести пароль, и когда я его ввожу, начинается передача.

Это ошибка, которую я получаю при попытке через скрипт:

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)

Вы пробовали что-то вроде:

rsync -rltvvv --password-file=/root/secret . user@host::dest

Использовать export RSYNC_PASSWORD=pass вместо того RSYNC_PASSWORD=pass.

попробуйте это работает

RSYNC_PASSWORD="yourpasswd"; rsync -rtv  -e user@host:/source /dest -p numberofport

в конце изменить порт