Как удалить файл на удаленной машине через SSH при помощи Сценария оболочки?

Я пишу Сценарий оболочки, где я должен удалить файл на удаленной машине с помощью Сценария оболочки.

Теките вручную:

ssh username@domain.com

.. затем в домене:

cd ./some/where
rm some_file.war

Как выполнить ту задачу?

33
15.07.2014, 02:29
3 ответа

Можно передать ssh клиент команда для выполнения вместо запуска оболочки путем добавления его к команде ssh.

ssh username@domain.com 'rm /some/where/some_file.war'

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

Следующим вопросом является аутентификация. Если Вы просто выполните это, то Вам предложат пароль. Если Вы не хотите вводить это в интерактивном режиме, необходимо настроить аутентификацию с открытым ключом.

51
27.01.2020, 19:37
  • 1
    я думал-c, был cipher_spec - нет? Я не думал, что-c требовался для передачи команды. поблагодарите всех –  Scott C Wilson 27.07.2011, 15:31
  • 2
    Вы парни за быстрые ответы. Этот ответ был тем, содержащим большинство частей к решению, таким образом, @Caleb получил галочку на этот раз. –  mico 27.07.2011, 15:38
  • 3
    Если мы добавляем -f кому: rm выполнение удаленного вызова? –  Fedir RYKHTIK 07.05.2014, 18:43
  • 4
    @Fedir НЕТ! Вопрос конкретно спрашивает о файлах не каталоги и если существуют какие-либо предупреждения или ошибки, брошенные rm они должны, конечно, быть переданы вызывающей стороне, если пользователь не знает, что ожидать и почему они переопределяют что-то. Большого количества ошибок и разбивающий отлаживание позже можно избежать, только используя опции, в которых Вы нуждаетесь в данном сценарии. –  Caleb 07.05.2014, 23:20
  • 5
    @Fedir -f опция к rm коротко для --force и имеет эффект, являются ли ошибки thown для несуществующих файлов или поддельных аргументов. Обычно команды работают не на основе интерактивного значения по умолчанию оболочек к тому, чтобы быть менее интерактивным так или иначе, но оно Ваш не, или Вы добираетесь, интерактивная подсказка нужно должна была бы зафиксировать настройки, непосредственно связанные с этим. При сценариях этого, у Вас не должно быть той проблемы так или иначе, и если Вы находитесь в интерактивной оболочке (где у Вас есть возможность катастрофических опечаток), необходимо использовать -I на --interactive=never установить Ваше желаемое поведение. –  Caleb 09.05.2014, 17:06

Команда ssh имеет параметр команды (последний параметр в команде), что можно использовать для выполнения удаленных команд.

2
27.01.2020, 19:37

Установите ключи без пароля, затем добавляют команду как часть команды ssh. См.: http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/

1
27.01.2020, 19:37

Теги

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