blob: 2884a5c6cdc42270b8bb3b3ff83fd99a6642cacc [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Pexpect - Examples</title>
<link rel="stylesheet" href="clean.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Noah Spurrier">
<meta name="Keywords"
content="pexpect, Noah Spurrier, Python, Libes, TCL, Expect, pipe, popen, pyExpect, expectpy, expect-like, expect-alike, expect like">
<meta name="Description" content="Examples for using Pexpect.">
</head>
<body bgcolor="#ffffff" text="#000000">
<div id="Header">
<h1>Pexpect Examples</h1>
</div>
<div id="Content">
<p><span class="code">hive.py</span></p>
<p><blockquote>
This script creates SSH connections to a list of hosts that
you provide. Then you are given a command line prompt. Each
shell command that you enter is sent to all the hosts. The
response from each host is collected and printed. For example,
you could connect to a dozen different machines and reboot
them all at once.
</p></blockquote>
<p><span class="code">script.py</span></p>
<p><blockquote>
This implements a command similar to the classic BSD
"script" command.
This will start a subshell and log all input and
output to a file.
This demonstrates the interact() method of Pexpect.
</p></blockquote>
<p><span class="code">fix_cvs_files.py</span></p>
<p><blockquote>
This is for cleaning up binary files improperly
added to CVS.
This script scans the given path to find binary
files;
checks with CVS to see if the sticky options are set
to -kb;
finally if sticky options are not -kb then uses 'cvs
admin' to
set the -kb option.
</p></blockquote>
<p><span class="code">ftp.py</span></p>
<p><blockquote>
This demonstrates an FTP "bookmark".
This connects to an ftp site; does a few ftp stuff;
and then gives the user
interactive control over the session. In this case
the "bookmark" is to a
directory on the OpenBSD ftp server. It puts you in
the i386 packages
directory. You can easily modify this for other
sites.
This demonstrates the interact() method of Pexpect.
</p></blockquote>
<p><span class="code">monitor.py</span></p>
<p><blockquote>
This runs a sequence of commands on a remote host
using SSH.
It runs a simple system checks such as uptime and
free to monitor
the state of the remote host.
</p></blockquote>
<p><span class="code">passmass.py</span></p>
<p><blockquote>
This will login to each given server and change the
password of the
given user. This demonstrates scripting logins and
passwords.
</p></blockquote>
<p><span class="code">python.py</span></p>
<p><blockquote>
This starts the python interpreter and prints the
greeting message backwards.
It then gives the user iteractive control of Python.
It's pretty useless!
</p></blockquote>
<p><span class="code">rippy.py</span></p>
<p><blockquote>
This is a wizard for mencoder. It greatly simplifies
the process of
ripping a DVD to Divx (mpeg4) format. It can
transcode from any
video file to another. It has options for resampling
the audio stream;
removing interlace artifacts, fitting to a target
file size, etc.
There are lots of options, but the process is simple
and easy to use.
</p></blockquote>
<p><span class="code">sshls.py</span></p>
<p><blockquote>
This lists a directory on a remote machine.
</p></blockquote>
<p><span class="code">ssh_tunnel.py</span></p>
<p><blockquote>
This starts an SSH tunnel to a remote machine. It
monitors the connection
and restarts the tunnel if it goes down.
</p></blockquote>
<p><span class="code">uptime.py</span></p>
<p><blockquote>
This will run the uptime command and parse the
output into variables.
This demonstrates using a single regular expression
to match the output
of a command and capturing different variable in
match groups.
The grouping regular expression handles a wide variety of different
uptime formats.
</blockquote>
<p>
<a href="http://sourceforge.net/projects/pexpect/"
title="The Pexpect project page on SourceForge.net"> <img
src="http://sourceforge.net/sflogo.php?group_id=59762&amp;type=5"
alt="The Pexpect project page on SourceForge.net" border="0"
height="31" width="105"> </a>
</p>
</div>
</body>
</html>