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

Можно использовать язык программирования R.

Вот быстрый и грязный сценарий R:

#! /usr/bin/env Rscript
d<-scan("stdin", quiet=TRUE)
cat(min(d), max(d), median(d), mean(d), sep="\n")

Отметьте "stdin" в scan который является специальным именем файла для чтения из стандартного входа (который означает от каналов или перенаправлений).

Теперь можно перенаправить данные по stdin к сценарию R:

$ cat datafile
1
2
4
$ ./mmmm.r < datafile
1
4
2
2.333333

Также работы для плавающих точек:

$ cat datafile2
1.1
2.2
4.4
$ ./mmmm.r < datafile2
1.1
4.4
2.2
2.566667

Если Вы не хотите писать файл сценария R, можно вызвать истинную остроту (с разрывом строки только для удобочитаемости) в использовании командной строки Rscript:

$ Rscript -e 'd<-scan("stdin", quiet=TRUE)' \
          -e 'cat(min(d), max(d), median(d), mean(d), sep="\n")' < datafile
1
4
2
2.333333

Прочитайте прекрасные руководства R по http://cran.r-project.org/manuals.html.

К сожалению, полная ссылка только доступна в PDF. Другой способ считать ссылку путем ввода ?topicname в подсказке интерактивной сессии R.


Для полноты: существует команда R, какие выводы все значения Вы хотите и т.д. К сожалению, в человеческом дружественном формате, который трудно проанализировать программно.

> summary(c(1,2,4))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   1.500   2.000   2.333   3.000   4.000 

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

Можно передать 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

Если вы хотите удалить удаленный файл с использованием sudo, необходимо выполнить что-то вроде этого:

ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)

Детали .

3
27.01.2020, 19:37

Теги

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