Skip to main content

Shellby: Simple shell access from Python

Project description

Features:

  • Simple access to local or remote (via asyncssh) shells

  • Neat legible output from multiple hosts

Simple access to bash:

import shlex
from tooler import Tooler

tooler = Tooler()

@tooler.command
def free(mount='/'):
    for result in tooler.bash('df -mah | grep %s' % shell_quote(mount + '$')):
        fs, blocks, use, available, use_pct, mnt = shlex.split(result.stdout)
        result.host.print('Used %s (%s) of %s [%s]' % (use, use_pct, mnt, fs))

if __name__ == '__main__':
    tooler.main()
$ ./disk.py free --mount=/
local$ df -mah | grep '/$'
local> /dev/mapper/ubuntu--vg-root  102G   69G   28G  72% /
local: []
local: Used 69G (72%) of / [/dev/mapper/ubuntu--vg-root]

Subcommands made easy:

from tooler import Tooler
from tooler.library import (named, SshConfig)

import disk

tooler = Tooler()

tooler.add_submodule('disk', disk.tooler)
tooler.add_submodule('named', named.tooler)

if __name__ == '__main__':
    named.add_hosts(SshConfig().get_hosts())
    tooler.main(hosts=[])

Library of awesome sauce:

$ ./tool.py named:nginx* disk.free
$ s named:nginx* free
nginx1$ df -mah | grep '/$'
nginx2$ df -mah | grep '/$'
nginx3$ df -mah | grep '/$'
nginx3> /dev/sda1        59G   37G   22G  64% /
nginx3: []
nginx1> /dev/sda1        59G   37G   22G  64% /
nginx1: []
nginx2> /dev/sda1        59G   37G   22G  64% /
nginx2: []
nginx1: Used 37G (64%) of / [/dev/sda1]
nginx2: Used 37G (64%) of / [/dev/sda1]
nginx3: Used 37G (64%) of / [/dev/sda1]

Thanks required:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shellby-0.0.0.tar.gz (3.2 kB view details)

Uploaded Source

File details

Details for the file shellby-0.0.0.tar.gz.

File metadata

  • Download URL: shellby-0.0.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.8

File hashes

Hashes for shellby-0.0.0.tar.gz
Algorithm Hash digest
SHA256 83f31ebdb6ceb0dada930c5e09dae98c3191b3122876df7ee96937d86c44da50
MD5 c990a0cd37f05c8957da84db34127112
BLAKE2b-256 d390b3d82833bd5fb12490e82e564c8968f711f1d2047e2647c555176278a7f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page