qual é a diferença entre qsub e ./

1

Alguém pode me dizer a diferença entre as seguintes formas de enviar um script:

$ qsub script_name.sh

e

./script_name.sh

Quais são as diferenças entre as duas formas acima de enviar um trabalho para um cluster?

Além disso, como às vezes eu preciso digitar:

$ chmod +x script_name.sh 

... antes que eu possa digitar ./script_name.sh para enviar um trabalho? Por que às vezes eu só preciso digitar qsub script_name.sh ?

Desculpe, não estou muito familiarizado com o Unix.

    
por john_w 26.02.2014 / 00:00

1 resposta

4

Usando um cluster computacional?

Como você está perguntando sobre qsub , presumo que esteja usando GridEngine ou algum produto de clustering de computadores .

qsub

Quando você executa o comando qsub script_name.sh , está dizendo ao nó principal do cluster que deseja enviar um script para ser executado nesse servidor. Então, esse servidor precisaria ter acesso ao mesmo sistema de arquivos que contém o script. Por exemplo, se o seu script estiver aqui, /home/myusername/script_name.sh , esse arquivo precisaria estar acessível no computador em que você está executando o comando qsub , bem como em qualquer nó do cluster em que você pretende que script_name.sh seja executado.

Executando um script

Quando você executa o script, ./script_name.sh não está executando nada no cluster. Você está executando este script localmente no seu sistema. Se você usou um comando para ganhar um shell no cluster, qsh , então está executando este comando em qualquer nó em que o nó do planejador do cluster decidiu fornecer um shell.

Permissões

Toda vez que você cria um script e pretende executá-lo, é necessário informar ao sistema suas intenções, alterando as permissões do script de forma que elas reflitam que o arquivo é executável. Caso contrário, o arquivo não é um script, mas apenas um arquivo de texto.

Você pode ver as permissões de um arquivo assim:

algum script

$ cat script_name.sh 
#!/bin/bash

echo "hello world"

não executável

$ ls -l script_name.sh 
-rw-rw-r--. 1 saml saml 32 Feb 25 18:11 script_name.sh
$ ./script_name.sh
bash: ./script_name.sh: Permission denied

executável

$ chmod +x script_name.sh 
$ ls -l script_name.sh 
-rwxrwxr-x. 1 saml saml 32 Feb 25 18:11 script_name.sh
$ ./script_name.sh
hello world
    
por 26.02.2014 / 00:11