Ajuda! Criar script que selecione qualquer arquivo informado

1. Ajuda! Criar script que selecione qualquer arquivo informado

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 28/08/2013 - 20:41h

Olá pessoal,
Estou criando um script para compilar remotamente códigos escritos em C para programação paralela em GPU.
O cenario é o seguinte: do meu notebook, quero mandar/executar/compilar algoritmos no meu PC em casa!
Para isso, escrevi este script:

#!/bin/bash
#Copia o arquivo teste.c para a máquina virtual ip 192.168.125.128 (usuário root)
scp /Users/douglasborges/Desktop/teste2.c root@192.168.125.128:/home/douglasborges
#Compila o arquivo na máquina virtual e executa. S
ssh -T root@192.168.125.128 "gcc /home/douglasborges/teste2.c -o /home/douglasborges/teste2 && chmod +x /home/douglasborges/teste2 && /home/douglasborges/teste2"

===

Tenho dois problemas:
1) Preciso informar a senha duas vezes. Isso é ruim. Preciso informar a senha de root no script, mas nao sei como!

2) Estou passando o nome do arquivo.c de forma manual. Dentro do script. Isso precisa ser mudado. Eu gostaria de poder passar o "arquivo.c" na hora de poder executar o script, algo desse tipo:

./script "qualquer_algoritmo.c"

Nao sei como arrumar o script, para receber "qualquer arquivo.c". Ou seja, preciso criar alguma condição para que eu informe o arquivo a ser executado remotamente, e o script copie/execute/compile/retorne saida para mim.

Alguem pode me ajudar por favor?
Agradeço desde já.



  


2. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 28/08/2013 - 20:56h

bom tu podes usar ssh sem senha
ai não precisa ficar digitando a senha
se tu quer que tu compile no servidor remoto e a saina na sua tela
usa a opção do ssh -X
de uma lida na man page do comando ssh e procure pela opção -X



3. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Fernando
phoemur

(usa Debian)

Enviado em 28/08/2013 - 21:00h

E para informar o arquivo coloca no script o nome do arquivo como "$1", depois pra executar

./script.sh arquivo.c

vai funcionar, pois $1 é o primeiro argumento passado na linha de comando...

Quanto ao ssh sem senha eu já te passei o link em um dos diversos tópicos que você abriu com a mesma questão...
Minha intenção não é ser sem educação, longe disso, mas é só pra mostrar que abrir diversos tópicos ao invés de ajudar atrapalha porque a gente não sabe onde responder a sua dúvida...

Abraços, qualquer coisa pergunta... Se eu souber ficarei feliz em ajudar...


4. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 29/08/2013 - 11:12h

danniel-lara escreveu:

bom tu podes usar ssh sem senha
ai não precisa ficar digitando a senha
se tu quer que tu compile no servidor remoto e a saina na sua tela
usa a opção do ssh -X
de uma lida na man page do comando ssh e procure pela opção -X


Danniel,
Não entendi a diferença entre o ssh -T e o -X ! =/
Eu estava usando assim:
ssh -T root@192.168.125.130 ...

E ele estava pedindo senha!
Passei a usar assim:
ssh -X root@192.168.125.130

E ele continua pedindo senha!

Ambos trazem a saida do arquivo na tela para mim, dessa forma:

Douglas:Desktop douglasborges$ ./compila2.sh teste2.c
root@192.168.125.130's password:
teste2.c 100% 149 0.2KB/s 00:00
root@192.168.125.130's password:
==> Programa Funcionando!!! <==
Douglas:Desktop douglasborges$

Obrigado Danniel! Abraço cara!


5. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 29/08/2013 - 11:18h

phoemur escreveu:

E para informar o arquivo coloca no script o nome do arquivo como "$1", depois pra executar

./script.sh arquivo.c

vai funcionar, pois $1 é o primeiro argumento passado na linha de comando...

Quanto ao ssh sem senha eu já te passei o link em um dos diversos tópicos que você abriu com a mesma questão...
Minha intenção não é ser sem educação, longe disso, mas é só pra mostrar que abrir diversos tópicos ao invés de ajudar atrapalha porque a gente não sabe onde responder a sua dúvida...

Abraços, qualquer coisa pergunta... Se eu souber ficarei feliz em ajudar...


Phoemur,
Obrigado por toda a ajuda que tu tens me dado!
De verdade!
Funcionou!!! :-)
Quanto aos tópicos, peço desculpas. Abri dois tópicos do mesmo, pois um eu coloquei na seção de "scripts" e outro na de "Programação em C". Achei que eu tivesse colocado na seção errada nesta última, pois achei a seção de "scripts" apenas ontem. Desculpe. =/
Quanto ao conselho, sem problemas! Vou cuidar para que isso não aconteça novamente!

Olha como ficou o script:

#!/bin/bash
#Copia o arquivo teste.c para a máquina virtual ip 192.168.125.128 (usuário root) no diretório /home/destino
scp $1 root@192.168.125.130:/home/douglasborges
#Compila o arquivo na máquina virtual e executa.
ssh -X root@192.168.125.130 "gcc /home/douglasborges/$1 -o /home/douglasborges/$1 && chmod +x /home/douglasborges/$1 && /home/douglasborges/$1"

==
Não entendi a diferença entre o SSH -T e o -X! Ambos pedem a senha, e trazem a saída para mim, no meu terminal do note!
Estou preocupado, é com o arquivo gerado na hora da compilação, o "saida.o". Se eu mandasse, de dois lugares diferentes, executar dois codigos, o que sera que aconteceria?! O.o
Eu deixei o "saida.o" como "$1", com o objetivo de que o S.O. gere o "saida" como o nome do arquivo! ;-)
Para que, caso eu mande compilar o teste1.c e o teste2.c ao mesmo tempo, ele nao crie dois "saida.o" e o compilador fique confuso! hehe

Vou fehar o outro topico, e ficar apenas nesse, ok?
Vou agora para as chaves!!! :-)

Obrigado de verdade!
Abraço Phoemur.


6. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 29/08/2013 - 11:34h

Um problema que eu identifiquei agora no script, é o de que o script e os arquivos a serem testados, precisam estar no mesmo diretório! :-(
FAzendo um teste:

Douglas:~ douglasborges$ chmod +x Desktop/compila2.sh
Douglas:~ douglasborges$ ./Desktop/compila2.sh /Users/douglasborges/Desktop/teste2.c
root@192.168.125.130's password:
teste2.c 100% 149 0.2KB/s 00:00
root@192.168.125.130's password:
gcc: error: /home/douglasborges//Users/douglasborges/Desktop/teste2.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
Douglas:~ douglasborges$


Ele junta o caminho da VM no caminho do meu note! Ficando assim: /home/douglasborges//Users/douglasborges/Desktop/teste2.c:
O gcc que eu passo é esse: "gcc /home/douglasborges/$1

No momento do gcc, eu preciso que ele ficasse com apenas o arquivo, e nao o caminho! =/
Tem como resolver isso?!
Ou ele vai usar sempre o caminho todo como parametro?


7. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Fernando
phoemur

(usa Debian)

Enviado em 29/08/2013 - 11:52h

Se não esiver no mesmo diretório tem que usar o caminho absoluto tanto na origem quanto no destino...


8. Re: Ajuda! Criar script que selecione qualquer arquivo informado

Douglas Borges
dborges

(usa Ubuntu)

Enviado em 29/08/2013 - 14:05h

Phoemur,
Nao estou conseguindo resolver o problema do caminho!
Nao estou conseguindo entender como devo configurar o script para que ele nao concatene meu "caminho" + caminho da vm!
Fiz alguns testes, mas sem sucesso.
Pode me ajudar?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts