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