| Index: third_party/pexpect/doc/examples.rst
|
| diff --git a/third_party/pexpect/doc/examples.rst b/third_party/pexpect/doc/examples.rst
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6338b5c01cdc05596e09943f2f4fd5e817504e89
|
| --- /dev/null
|
| +++ b/third_party/pexpect/doc/examples.rst
|
| @@ -0,0 +1,63 @@
|
| +Examples
|
| +========
|
| +
|
| +Under the distribution tarball directory you should find an "examples" directory.
|
| +This is the best way to learn to use Pexpect. See the descriptions of Pexpect
|
| +Examples.
|
| +
|
| +`topip.py <https://github.com/pexpect/pexpect/blob/master/examples/topip.py>`_
|
| + This runs `netstat` on a local or remote server. It calculates some simple
|
| + statistical information on the number of external inet connections. This can
|
| + be used to detect if one IP address is taking up an excessive number of
|
| + connections. It can also send an email alert if a given IP address exceeds a
|
| + threshold between runs of the script. This script can be used as a drop-in
|
| + Munin plugin or it can be used stand-alone from cron. I used this on a busy
|
| + web server that would sometimes get hit with denial of service attacks. This
|
| + made it easy to see if a script was opening many multiple connections. A
|
| + typical browser would open fewer than 10 connections at once. A script might
|
| + open over 100 simultaneous connections.
|
| +
|
| +`hive.py <https://github.com/pexpect/pexpect/blob/master/examples/hive.py>`_
|
| + 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.
|
| +
|
| +`script.py <https://github.com/pexpect/pexpect/blob/master/examples/script.py>`_
|
| + 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 :meth:`~pexpect.spawn.interact` method of Pexpect.
|
| +
|
| +`ftp.py <https://github.com/pexpect/pexpect/blob/master/examples/ftp.py>`_
|
| + This demonstrates an FTP "bookmark". This connects to an ftp site;
|
| + does a few ftp tasks; 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
|
| + :meth:`~pexpect.spawn.interact` method of Pexpect.
|
| +
|
| +`monitor.py <https://github.com/pexpect/pexpect/blob/master/examples/monitor.py>`_
|
| + 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.
|
| +
|
| +`passmass.py <https://github.com/pexpect/pexpect/blob/master/examples/passmass.py>`_
|
| + This will login to each given server and change the password of the
|
| + given user. This demonstrates scripting logins and passwords.
|
| +
|
| +`python.py <https://github.com/pexpect/pexpect/blob/master/examples/python.py>`_
|
| + This starts the python interpreter and prints the greeting message
|
| + backwards. It then gives the user iteractive control of Python. It's
|
| + pretty useless!
|
| +
|
| +`ssh_tunnel.py <https://github.com/pexpect/pexpect/blob/master/examples/ssh_tunnel.py>`_
|
| + This starts an SSH tunnel to a remote machine. It monitors the
|
| + connection and restarts the tunnel if it goes down.
|
| +
|
| +`uptime.py <https://github.com/pexpect/pexpect/blob/master/examples/uptime.py>`_
|
| + 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.
|
|
|