mi a különbség a qsub és a ./

Tudna valaki mondani különbséget a szkript beküldésének következő módjai között:

$ qsub script_name.sh 

és

./script_name.sh 

Mi a különbség a munka két fürtbe történő beküldésének fenti két módja között?

Azt is, hogy néha miért kell beírnom:

$ chmod +x script_name.sh 

… mielőtt beírhatnám a ./script_name.sh munkát benyújtani? Hogy lehet, hogy néha csak be kell írnom a qsub script_name.sh szót?

Sajnálom, hogy nem ismerem a Unixot.

Megjegyzések

  • Mi az a qsub? _
  • @HaukeLaging – lásd a válaszomat.

Válasz

Számítási fürtöt használ?

Mivel a qsub ról kérdezel, feltételezem, hogy a GridEngine vagy néhány számítógépes fürtözési termék .

qsub

A qsub script_name.sh azt mondod a fürt fejcsomópontjának, hogy el akarsz küldeni egy parancsfájlt az adott kiszolgálón való futtatásra. Tehát a szervernek hozzáférnie kell ugyanazokhoz a fájlrendszerekhez, amelyek a szkriptet tartalmazzák. Például, ha a szkript itt él, /home/myusername/script_name.sh, akkor a fájlnak elérhetőnek kell lennie mindkét számítógép, amelyen a qsub parancsot futtatja, valamint a fürt bármely olyan csomópontja, amelyen a script_name.sh futtatni szándékozik.

Szkript futtatása

A szkript futtatásakor ./script_name.sh nem futtat semmit a fürtön. Ezt a parancsfájlt helyben futtatja a rendszer. Ha parancsot használtál egy héj megszerzésére a fürtön, qsh, akkor futtasd ezt a parancsot azon a csomóponton, amelyen a fürt ütemezője csomópontot adott. bekapcsolva.

Engedélyek

Bármikor készít egy szkriptet és futtatni szándékozik, el kell mondania a rendszernek a szándékát, megváltoztatva a szkript engedélyeit úgy, hogy azok tükrözzék ezt a fájl futtatható. Ellenkező esetben a fájl nem szkript, hanem csak szöveges fájl.

A fájlokhoz hasonló engedélyeket láthat:

néhány szkript

$ cat script_name.sh #!/bin/bash echo "hello world" 

nem futtatható

$ 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 

futtatható

$ 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 

Megjegyzések

  • Szia slm, köszönöm válaszát. De kissé zavart vagyok, mit jelent az, amikor azt mondod, hogy " ha ' parancsot használtál egy héj megszerzéséhez a fürtön , qsh, akkor ' futtatja ezt a parancsot bármely csomóponton, a fürt ' ütemező csomópontja úgy döntött, hogy egy shellt ad neked. "
  • @john_w – milyen fürtözési technológiát használ itt? GridEngine vagy valami más?
  • Szia, sajnálom, nem vagyok biztos benne, mit jelent a fürtözési technológia, rendkívül újonc vagyok. Tudom, hogy van egy bashrc fájlom. Hogyan tudom megtudni a GridEngine-t? beírok valamilyen parancsot a parancssorba, hogy megtudjam?
  • Szintén van egy szkriptem, amely másik parancsfájlt kér. A start_prephasing.sh szkript meghívja a prephasing.sh-t egy hurok használatával a start_prephasing.sh fájlban. A qsub segítségével a star_prephasing.sh fájlt küldtem be, de a " / var / spool / n1ge / cn-r10-7 / job_scripts / 4304571: 9. sor: qsub: a parancs nem található ". De amikor beírom a chmod + x start_prephasing.sh fájlt, akkor a prephasing.sh 22 feladata sikeresen fut. Nem tudom, miért, azt hiszem, még mindig nem értem teljesen a különbséget a qsub start_prephasing.sh és a ./start_prephasing.sh között.
  • Ez az amit a start_prephasing.sh szkript tartalmaz: # $ -S / bin / bash # $ -cwd export HOME = / adp / home / hswong / CACTI / imputation / prephasing hagyja, hogy a = 1 b = 22, míg a [$ a -le $ b] do qsub -q long.q -o ~ / queue -e ~ / queue prephasing.sh $ a #qsub -pe párhuzamos 4 -q parallel_long.q -o ~ / queue -e ~ / queue prephasing.sh $ a let a = $ a + 1 kész

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük