Versions Compared

Key

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

Simple SFTP commands

Pshell is a python command line client that implements a subset of the standard SFTP commands.

  • Remote filesystem commands: cd, ls, pwd, mkdir, rmdir
  • Local filesystem commands: lcd, lls, lpwd
  • Transfer commands: get, put 

...

  • whoami: reports the current logged in identity
  • file: reports metadata information on a file

Pagination

For file listings that are longer than the terminal height, a pagination control prompt will be displayed with the following options:

Entry
Result
<enter>Display the next page of files
<page number><enter>Display the requested page number
/<pattern>Filter the result on the pattern
qLeave (quit) paginated display mode

Exercises

Exercise 1 - pshell with Pawsey account

Perform the following:

  • run pshell and login to the mediaflux server,
  • query what your logged in identity is,
  • display your current working directory on the server,
  • display your local working directory
  • list the contents of the directory.
Expand
titleSolution 1
Code Block
iblis:~> pshell
Reading default config from bundle...
 === pshell: type 'help' for a list of commands ===
pawsey:offline>login
Username: sean
Password: 
pawsey:/projects>

pawsey:/projects>whoami
actor = ivec:sean
  role = ivec
  role = user

pawsey:/projects>pwd
Remote: /projects

pawsey:/projects>lpwd
Local: /Users/sean
pawsey:/projects>ls

2 items, 29 items per page, remote folder: /projects
[Folder] DMF-TEST
[Folder] Data Team

Exercise 2

Perform the following:
  • Navigate to the Data Team folder,
  • download the testfiles folder to your local desktop,
  • check the download by listing the files locally.


Expand
titleSolution 2
Code Block
pawsey:/projects>cd Data Team/
Remote: /projects/Data Team
pawsey:/projects/Data Team>get testfiles
Total files=31, transferring ...  
Progress=100%, rate=0.5 MB/s  Completed.

pawsey:/projects/Data Team>lls testfiles
Local folder: /Users/sean/testfiles
 17.02 KB | i000765.jpg
 17.59 KB | i000766.jpg
 17.21 KB | i000767.jpg
 19.09 KB | i000768.jpg
etc

Exercise 3

Perform the following:

  • Navigate to the Demo folder
  • create a unique new folder (eg your name)
  • upload the files you downloaded in the previous exercise
  • check the upload by listing the remote files.
Expand
titleSolution 3
Code Block
iblis:~> pshell
Reading config [/Users/sean/.mf_config]
 === pshell: type 'help' for a list of commands ===
pawsey:/projects>cd Demo/
Remote: /projects/Demo
pawsey:/projects/Demo>mkdir sean
pawsey:/projects/Demo>cd sean
Remote: /projects/Demo/sean
pawsey:/projects/Demo/sean>lcd testfiles
Local: /Users/sean/testfiles
pawsey:/projects/Demo/sean>put *
Total files=31, transferring...  
Progress: 100% at 0.5 MB/s  Completed.

pawsey:/projects/Demo/sean>ls
31 items, 29 items per page, remote folder: /projects/Demo/sean
 69776130   | online  |  17.69 KB | i000771.jpg
 69776131   | online  |  17.02 KB | i000765.jpg
 69776132   | online  |  17.21 KB | i000767.jpg
etc

Exercise 4

Perform the following:

  • Navigate to the folder where you uploaded files in the previous exercise,
  • use a filter to display files with 077 in the filename,
  • delete files that match that pattern.
Expand
titleSolution 4
Code Block
iblis:~> pshell
Reading config [/Users/sean/.mf_config]
 === pshell: type 'help' for a list of commands ===
pawsey:/projects>cd Demo/sean/
Remote: /projects/Demo/sean
pawsey:/projects/Demo/sean>ls *077*
4 items, 29 items per page, remote folder: /projects/Demo/sean
 69776130   | online  |  17.69 KB | i000771.jpg
 69776135   | online  |  18.96 KB | i000770.jpg
 69776136   | online  |  17.58 KB | i000772.jpg
 69776138   | online  |  16.62 KB | i000773.jpg
Page 1 of 1, file filter ['*077*']: q
pawsey:/projects/Demo/sean>rm *077*
Remove 4 files: (y/n) y