In [13]:
import SSHTools as SSHTools
ssh=SSHTools.SSHTools()

In [14]:
# Setup connection parameters (for tunneling use host="localhost")
ssh.setup(user="Andriy.Zhugayevych",host="cluster.skoltech.ru",pkey="C:/Users/azh/Sys/Internet/SSH/skoltech/key2.ppk")
#ssh.setup(user="Sergey.Matveev",host="cluster.skoltech.ru",pkey="/home/smatveev/.ssh/T1700")
#ssh.setup(user='s.matveev',host='83.149.206.202',pkey='/home/sergey/.ssh/id_rsa',port=22)

In [15]:
# Test connection: execute a command on the server
ssh.run("ls",printout=True)


command: ls
output:
bin
C35H36_molec_P_CAM-B3LYPp2p_mgf.e54946
C35H36_molec_P_CAM-B3LYPp2p_O.e54947
C35H36_molec_P_CAM-B3LYPp2p_sp.e54944
gaussian
intel
lammps
local
mopac
private
public
scratch
Si35H36_molec_N_CAM-B3LYPp2p_mgf.e54928
Si35H36_molec_N_CAM-B3LYPp2p_O.e54929
Si35H36_molec_N_CAM-B3LYPp2p_sp.e54926
Si35H36_molec_P_B3LYPp2p_mgf.e54933
Si35H36_molec_P_B3LYPp2p_O.e54934
Si35H36_molec_P_B3LYPp2p_sp.e54931
Si35H36_molec_P_CAM-B3LYPp2p_mgf.e54924
Si35H36_molec_P_CAM-B3LYPp2p_O.e54925
Si35H36_molec_P_CAM-B3LYPp2p_sp.e54922
tinker
vasp
Out[15]:
'bin\nC35H36_molec_P_CAM-B3LYPp2p_mgf.e54946\nC35H36_molec_P_CAM-B3LYPp2p_O.e54947\nC35H36_molec_P_CAM-B3LYPp2p_sp.e54944\ngaussian\nintel\nlammps\nlocal\nmopac\nprivate\npublic\nscratch\nSi35H36_molec_N_CAM-B3LYPp2p_mgf.e54928\nSi35H36_molec_N_CAM-B3LYPp2p_O.e54929\nSi35H36_molec_N_CAM-B3LYPp2p_sp.e54926\nSi35H36_molec_P_B3LYPp2p_mgf.e54933\nSi35H36_molec_P_B3LYPp2p_O.e54934\nSi35H36_molec_P_B3LYPp2p_sp.e54931\nSi35H36_molec_P_CAM-B3LYPp2p_mgf.e54924\nSi35H36_molec_P_CAM-B3LYPp2p_O.e54925\nSi35H36_molec_P_CAM-B3LYPp2p_sp.e54922\ntinker\nvasp'

In [16]:
ssh.run("ls aaaaaa") # deliberately wrong


---------------------------------------------------------------------------
Warning                                   Traceback (most recent call last)
<ipython-input-16-c0d443f8bd5b> in <module>()
----> 1 ssh.run("ls aaaaaa") # deliberately wrong

C:\Users\azh\Sci\Math\CompMath\Python\SSHTools\SSHTools.py in run(self, command, noerror, printout)
     38                                 return err
     39                         else:
---> 40                                 raise Warning("stderr: "+"".join(err))
     41                 if printout:
     42                         if len(out)==1:

Warning: stderr: ls: cannot access aaaaaa: No such file or directory

In [17]:
ssh.run("ls aaaaaa",noerror=True)


Out[17]:
['ls: cannot access aaaaaa: No such file or directory\n']

In [18]:
# File upload/download
ssh.put("SSHTools.py","test_put")
ssh.sget("gaussian/_pbs","test_sget")


Out[18]:
0

In [19]:
# Remove test file
ssh.run("rm -f test_put")


Out[19]:
''

In [20]:
print(ssh.fexists('gaussian/_pbs'))
print(ssh.fexists('gaussian/_bs'))


True
False