como executar um programa com privilégios de root em um host linux remoto

1

Eu quero executar um programa em muitos hosts remotos este programa pode executar horas serveral e precisa de privilégios de root Eu carreguei o programa para esses hosts remotos Eu só posso ssh nessas máquinas com meu nome de usuário mas com meu nome de usuário eu posso sudo sem senha

agora quero escrever um script de automação para executá-los nesses hosts

basicamente eu preciso de algo como:

for remote_host in host_list:
     run the program on remote_host

e, em seguida, o script é encerrado. Eu tentei

ssh -t usr@remote_host "sudo /home/usr/program"

mas isso bloqueará meu shell até que o programa seja encerrado então eu tentei

ssh -t usr@remote_host "sudo /home/usr/program" &

ele não funciona, eu uso ps -ef para verificar e não encontrar nenhum processo

Eu também tentei o python paramiko , mas falhei link

Eu também quero registrar todas as saídas da execução do programa

alguém pode dar algumas soluções? obrigado

    
por misteryes 18.04.2013 / 19:14

1 resposta

4

Tente:

ssh -t usr@remote_host 'sudo nohup bash -c "/home/user/program > /dev/null 2>&1 &"'

O nohup deve permitir que seu shell saia sem matar o programa que você está executando. Solte a opção -t se você não quiser que o arquivo nohup.out seja criado.

    
por 18.04.2013 / 19:46

Tags