On Wed, 01 Apr 2015 19:27:55 -0700 "Carl E. Fields" <[email protected]> wrote:
> hello everyone, > > thank you for your responses. > > I've tried moving everything to one file 'test.sh' > with the contents below: I'm not a bash expert but two suggestions: 1) Perhaps better use "set -e" instead of all those &&? See http://www.davidpashley.com/articles/writing-robust-shell-scripts/#id2382181 2) Redirect sbatch both stdout and stderr to some output file in order to better know what happens: "sbatch calculate.job &> sbatch.out" Also, I guess you'll have some motivation but, why do you use a bang.sh script instead of just calling sbatch straight from the main one? Inigo > > #!/bin/bash > > > if [ -f inlist_user_input ] > > then > > cd /var/www/virtual/mesa-web.asu.edu/html/services && > > cp inlist_user_input /var/www/virtual/ > mesa-web.asu.edu/html/services/Work/ && > > rm /var/www/virtual/mesa-web.asu.edu/html/services/inlist_user_input > && > > cd /var/www/virtual/mesa-web.asu.edu/html/services/Work && > > ./bang.sh > > else > > exit > > fi > > > where bang.sh: > > > > #!/bin/bash > > whoami > 'out.txt' > > sbatch calculate.job > > > > > Where calculate.job: > > #!/bin/bash > > #SBATCH -p compute > > #SBATCH -N 1 > > #SBATCH -n 1 > > #SBATCH --time=00:10:00 > > #SBATCH --mail-type=ALL > > #SBATCH [email protected] > > #SBATCH --error=job.%J.err > > #SBATCH --output=job.%J.out > > > > srun ./rn > > > > > > crontab executes eve thing fine except the batch command, which works > when run as SlurmUser by hand. I have the bang script before the > batch is being executed, print the user, to ensure its the slurm user. > > > Any further suggestions would be welcomed. > > > Thanks, > > > Carl > > > > > > On Wed, Apr 1, 2015 at 2:19 PM, Inigo Aldazabal Mensa < > [email protected]> wrote: > > > > > On Wed, 01 Apr 2015 13:13:38 -0700 > > "Carl E. Fields" <[email protected]> wrote: > > > > > Hi Everyone, > > > > > > I wish to have crontab check every minute for the existence of a > > > file, then if such file exists, execute "sbatch calculate.sh". > > > > > > crontab is written as: > > > > > > * * * * * SlurmUser > > > cd /var/www/virtual/mesa-web.asu.edu/html/services > > > && /bin/sh ./test.sh > > > > > > the file test.sh contains: > > > > > > #!/bin/bash > > > > > > > > > if [ -f inlist_user_input ] > > > > > > then > > > > > > sbatch calculate.sh > 'rn.txt' > > > > > > else > > > > > > exit > > > > > > fi > > > > > > > > > > > > lastly, calculate.sh is a typical job batch script > > > > > > When i $ ./test.sh by hand > > > > > > I get the typical out put "Submitted job id ##" to the rn.txt file > > > > > > However, when I have crontab do the same thing, > > > rn.txt is created, but empty. > > > > > > Can crontab processes execute sbatch commands? Am I missing a > > > particular permission setting? > > > > Are you sure calculate.sh is in the same path where sbatch is run > > from? > > > > If it's not sbatch will just dump an error, which output would no > > be in your rn.txt as it'd go to stderr, and exit. > > > > I'd add the cd part to the test.sh script itself. > > > > Inigo > > > > > > > all files involved are executable by "SlurmUser" > > > > > > Thanks ahead of time, > > > > > > Carl > >
