Install or upgrade python packages
file: hosts.spy
hosts = ['host1','host2','host3','host4','host5','host6','host7','host8','host9','host10']
file: example.spy
# you can reuse this settings in many scripts.
$.include('hosts.spy')
# python executable on every host
python3bin = 'python3'
pkgname = 'sshscript'
def installPackage(upgrade=False):
global python3bin, pkgname
if upgrade:
print('upgrading')
$@{python3bin} -m pip install sshscript --upgrade
else:
print('installing')
$@{python3bin} -m pip install @{pkgname}
#upgrade pip if necessary
if 'WARNING: You are using pip version' in $.stderr:
print('upgrading pip')
$@{python3bin} -m pip install pip --upgrade
for host in hosts:
$.connect('john@'+host)
$@{python3bin} -c "import @{pkgname}"
if $.exitcode == 0:
installPackage(upgrade=True)
else:
installPackage()
$.close()
execution
sshscript example.spy --verbose --debug
Last Updated: 2026-07-25 16:59:40
Table of contents
- SSHScript v3.1 Documentation
- Accounts (legacy URL)
- Checking the syncing status of two MySQL servers
- Getting Started with SSHScript
- Page not found
- Q: What can it do that Netmiko doesn’t do? (origin)
- SSHScript Documentation
- SSHScript Documents
- SSHScript v2.0 CLI(Draft)
- SSHScript v2.0 Commands Execution and Console
- SSHScript v2.0 Console of sudo and su
- SSHScript v2.0 Getting Started
- SSHScript v2.0 Interactive Commands and Foreground Commands
- SSHScript v2.0 Make Connections
- SSHScript v2.0 Recipes
- SSHScript v2.0 Reference Guide
- SSHScript v2.0 Stdout, Stderr and Exitcode
- SSHScript v2.0 Threading Support
- SSHScript v2.0 Upload and Download Files
- SSHScript v2.0.2 Release Notes
- SSHScript v3.0 Interactive and Foreground Commands
- SSHScript v3.0 Reference Guide
- SSHScript v3.0.0 Release Notes
- SSHScript v3.1
- SSHScript vs. Ansible
- 用 Python 作系統自動化