Передача файлов с удаленного хоста на локальный с SSHPASS

Попробуйте: Стандартные> Терминал ; -)

1
10.10.2018, 20:17
1 ответ

Ты должен позаботиться об одной или двух вещах:

  • Разрешения :Возможно, у вас нет прав на чтение файла;
  • Многострочный ответ :Ваша находка может дать вам более одного файла.

Короче говоря, вероятно, ваша проблема не sshpass.

Теперь мы считаем само собой разумеющимся, что у вас нет проблем, связанных с разрешениями.

То, что вы можете сделать, примерно так:

files="$(sshpass -p "passwd" ssh -l username rhost "find /arch -type f -ctime -40")"
for file in ${files}; do
  if sshpass -p "passwd" scp "username@rhost:${file}" /arch; then
    printf "SCP Completed\n"
  fi
done

Теоретически, $filesне будет содержать то, что вы не можете захватить, потому что findбудет печатать в stderrфайлы (папки ), до которых вы не можете добраться, поэтому вы должны управлять этим в отдельном способ.

Среди всех вариантов вы можете объединить stderrс stdoutи добавить условие в свой цикл forили сохранить ошибки в другой переменной (или файле )и циклически выполнять их отдельно.

1
27.01.2020, 23:42

Теги

Похожие вопросы