Удалите файл на удаленной машине, используя скрипт bash - PullRequest
0 голосов
/ 31 октября 2011

Я хочу в основном копировать файлы с удаленных машин, а после копирования удалять их.

Мне удалось скопировать файлы с использованием ожидаемого и scp. Также удалось удалить файлы вне скрипта, но не смог использовать команду ssh внутри скрипта. Это то, что у меня есть

#!/usr/bin/expect -f
log_user 1
set timeout -1
set pass "pass"


spawn scp  user@remote.machine.com:Desktop/LoginCheck/Login/* .
expect {
          password: {send "$pass\r" ; exp_continue}

}
ssh user@remote.machine.com 'rm -rf Desktop/LoginCheck/Login/*'
expect {
          password: {send "$pass\r" ; exp_continue}

}

Итак, секция кода scp работает. Но ssh и rm -rf это ошибка для ssh

invalid command name "ssh"
    while executing

Может кто-нибудь предоставить рабочий скрипт?

Ответы [ 3 ]

1 голос
/ 31 октября 2011

Заменить ssh на spawn ssh - ssh не является встроенной командой expect.

1 голос
/ 31 октября 2011

Вы только что пропустили spawn перед строкой ssh:

spawn ssh user@remote.machine.com 'rm -rf Desktop/LoginCheck/Login/*'

Вы должны также добавить строку wait перед ней, потенциально проверяя код выхода scp.

В любом случае, не используйте ожидаемую для автоматизации ssh, используйте ssh-ключи и sh-скрипты, как и другие описанные плакаты.

1 голос
/ 31 октября 2011

Разве команда ssh не должна быть новым порождением? Кстати, просто читая статью в википедии о том, что ожидают , один из перечисленных «минусов»:

Менее очевидным аргументом против Expect является то, что он может включить неоптимальные решения. Например, системный администратор должен войти на несколько серверов для автоматических изменений может использовать Expect с сохраненные пароли, а не лучшее решение ключей агента ssh. Возможность автоматизации интерактивных инструментов привлекательна, но есть часто другие варианты, которые могут выполнить те же задачи в более робкий способ.

Звучит так, как будто вы делаете именно пример неоптимального решения. Если бы вы использовали правильную пару ключей ssh, вам вообще не нужно было бы ожидать.

...