Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Expand
titleSolution 1

pshell

login

sean

????

delegate

exit

pshell whoami


Exercise - script a task to download a file in your directory.

Expand
titleSolution 2

Create a plain text file script1.txt containing:

Code Block
cd Demo/sean
get testfile1


pshell -i script1.txt




Exercise - script a task that attempts to perform something that will fail (eg remove a directory that doesn't exist) and correctly report that the script encountered an error.

Expand
titleSolution 3


Run the following script if you have bash ... sorry Windows users (without WSL.)


Code Block
#!/bin/bash

pshell "rmdir /idontexist"

if [ $? == 0 ]; then
   echo "All good - proceed further!"
else
   echo "Operation failed!"
fi

Which produces:

Code Block
Error from server: The namespace '/idontexist' does not exist or is not accessible
Operation failed!


This would typically be a job script on (eg) Pawsey HPC - where you would be doing all such work in a Linux environment.

The idea is that if something in your data setup pipeline fails - don't waste any valuable cpu time on it.




Exercise - modify the script from adapt the previous exercise to perform something an upload that will succeed  (eg upload a file from your local desktop) and correctly report that the operation was successful.

Expand
titleSolution 5

You will need two scripts here, one to run pshell (which would be submitted as a job) and another to supply multiple commands to pshell.

The second script is needed as, by default, pshell will try to upload into your current working directory (/projects) which you do not have permission to alter.


First script, call it: upload.txt

Code Block
cd /projects/Demo/sean
put testfile


Then we can run this:

Code Block
#!/bin/bash

pshell 
"put testfile"
-i upload.txt

if [ $? == 0 ]; then
   echo "All good - proceed further!"
else
   echo "Operation failed!"
fi