Wrapper library over paramiko to allow remote execution of tasks. Supports parallel execution on multiple hosts
Project description
Small wrapper library over paramiko that allows for parallel execution of SSH commands on remote hosts and executing simple single host commands over SSH.
parallel-ssh uses asychronous network requests, there is no multi-threading or multi-processing used. This is a requirement for commands on many (hundreds) of hosts which would grind a system to a halt simply by having so many processes/threads all wanting to execute if done with multi-threading/processing.
Module documentation can be found at the repository’s github pages.
Installation
$ pip install parallel-ssh
Usage Examples
See documentation on github pages for more complete examples
Run ls on two remote hosts in parallel.
>>> from pssh import ParallelSSHClient >>> hosts = ['myhost1', 'myhost2'] >>> client = ParallelSSHClient(hosts) >>> cmds = client.exec_command('ls -ltrh /tmp/aasdfasdf', sudo = True) >>> print [client.get_stdout(cmd) for cmd in cmds] [localhost] drwxr-xr-x 6 xxx xxx 4.0K Jan 1 00:00 xxx [{'localhost': {'exit_code': 0}}]
SFTP support
SFTP is supported (scp version 2 protocol) natively, no scp command used.
For example to copy a local file to remote hosts in parallel
>>> from pssh import ParallelSSHClient >>> hosts = ['myhost1', 'myhost2'] >>> client = ParallelSSHClient(hosts) >>> client.copy_file('../test', 'test_dir/test') >>> client.pool.join() Copied local file ../test to remote destination myhost1:test_dir/test Copied local file ../test to remote destination myhost2:test_dir/test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file parallel-ssh-0.4.tar.gz
.
File metadata
- Download URL: parallel-ssh-0.4.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6560e27d5fb577764e3b5988753afcebfdbb9f7b756ee3c1dcb9a1e8baf298bc |
|
MD5 | b6c1f6c071aa4000f8fc82a3c548cd8c |
|
BLAKE2b-256 | 183035be1a93b387e0ee42ecb9c8cf6536b2ee8cd6db1813c2833d5b07c18f34 |