Skip to content

erikdejonge/cmdssh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cmdssh

Execute commands on local machine and on remote machine via ssh, and a wrapper for paramikos scp.

shell command

Wrapper around subprocess.call with shell=True

shell(cmd)

Background Unix command running

Runs a blocking unix command and returns the result

cmd_run(cmd, pr=False, streamoutput=True, returnoutput=True, cwd=None, prefix=None)

# example
cmd_run('date "+%Y-%m-%d% %H:%M"', pr=False, streamoutput=False, returnoutput=True)

# more params
call_command(command, cmdfolder=os.getcwd(), verbose=False, streamoutput=True,\
             returnoutput=False, prefix=None, ret_and_code=False)

###Parameters:

  • command: unix command
  • cmdfolder=os.getcwd() -> working folder command
  • verbose=False -> prints the command
  • streamoutput=True -> prints output to stdout (keeps buffering)
  • returnoutput=False -> return the buffered output
  • prefix=None -> string to place before streaming output
  • ret_and_code=False -> return exit code also (code, val)

Variant background unix command

Common usecase scenario, run a command and get the result, possibly print to the console using an optional filter.

# example filter: 
def onlyerrors(data):
    if "ERROR" in data:
        return data

cmd_exec(cmd, cmdtoprint=None, display=True, myfilter=onlyerrors)
  • cmdtoprint: unix command
  • display: print to console
  • myfilter: function used to print

SSH: run command on remote machine

Uses ssh and key authentication to logon to a remote ssh server and execute a command there.

def remote_cmd(server, cmd, username=None, timeout=60, keypath=None):

#example
remote_cmd("localhost", "rm -Rf ~/Desktop/foobar")

###Parameters:

  • server: ip or domain name of server
  • cmd: unix command to execute
  • username: username used to login
  • timeout: try time to connect to server
  • keypath: path to the public key of username

tuplebased interface:

remote_cmd_map(servercmd)
  • servercmd: tuple with ( server, cmd, username, keypath )

SSH: Secure Copy Protocol

scp_get(server, fp1, fp2, username=None, keypath=None)
scp_put(server, fp1, fp2, username=None, keypath=None)

###Parameters:

  • server: ip or domain name of server
  • fp1: source filepath
  • fp2: target filepath
  • username: username used to login
  • keypath: path to the public key of username

SSH: Shell

Invoke a shell on a machine

invoke_shell(server, username, keypath)

###Parameters:

  • server: ip or domain name of server
  • username: username used to login
  • keypath: path to the public key of username

Download file

Wrapper around the requests library. Downloads a file with a progress bar.

download(url, mypath):

parameters:

  • url: url to download
  • mypath: filepath where to create the downloaded file

example output:

download: http://download.thinkbroadband.com/5MB.zip
00:00:02|███████████████████████         | 3.7Mi/5.0Mi

About

Execute commands on local machine and on remote machine via ssh, and a wrapper for paramikos scp.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published