Как мы можем скопировать один файл с одного сервера на другой в cron

Кто-нибудь может дать мне знать, как мы можем скопировать файл с одного сервера на другой в cron. Я знаю о scp но как мы используем его в cron, так как нам нужно передать пароль.

отредактированный

Я нашел эту ссылку Expect script, который вводит имя пользователя и пароль

Кто-нибудь может помочь мне сделать это. Я чрезвычайно новичок в Ubuntu,

1 ответ

Решение

У вас есть два основных варианта:

  1. Плохой: используйте что-то вроде pscp который позволяет отправить пароль. От man pscp:

      -pw password
          Set  remote password to password. CAUTION: this will likely make
          the password visible to other users of the  local  machine  (via
          commands such as `w').
    

    Это потребует от вас иметь пароль в файле crontab, который является простым текстовым файлом, и это не очень хорошая идея. На моем Debian, с pscp 0.63, пароль на самом деле маскируется при выводе w а также ps &co, но основываясь на приведенной выше справочной странице, вы не можете предполагать, что так будет всегда.

  2. Лучший вариант: установить ssh без пароля для пользователя, которому нужно запустить scp команда. Если вы не хотите делать это для обычного пользователя, просто создайте нового пользователя и запустите crontab от имени этого пользователя.

Кроме того, вы можете настроить его наоборот. Вместо того чтобы пользователь на машине A копировал файл с машины B, пусть пользователь на машине B вместо этого скопирует файл на машину A.

Да, вы можете сделать это с expect сценария, но те же проблемы безопасности будут применяться, если вы хотите включить пароль в сценарий.

Другие вопросы по тегам