futil README
$Revision: 1.15 $
License
-------
Distributed under the terms of the Academic Free License, v2.1.
See the LICENSE.txt file for the terms and provisions.
Installation
------------
Using your usual login name, unpack the futil tar archive, change into the
extracted folder, and run the install.sh script.
For example, assuming the tar archive file is in your home directory and
you want the futil scripts to reside in ~/futil, do this:
$ cd ~ # Change to your home directory
$ tar -zxf ./futil-2.4.tgz # Unpack the futil archive
$ cd futil # Change to the extracted futil folder
$ ./install.sh # Run the install script
This will create symlinks in your ~/bin directory, which will link to the
scripts in the unpacked futil folder.
Conversely, run ./uninstall.sh to remove the symlinks to uninstall the package.
IMPORTANT: Make sure ~/bin is in your $PATH. If not, then add it. Otherwise,
you will not gain access to the futil scripts at the shell command line.
Availability and Support
------------------------
See the project homepage at http://sourceforge.net/projects/futil
Description
-----------
The futil package includes various scripts to make using and managing a
Linux system more productive and efficient.
Indentation Style
-----------------
One tab = four spaces
Sudo Privilege
--------------
Some of the scripts use sudo(8) to switch to root, therefore you must have
sudo privilege for the operations to succeed. If a script requires sudo
privilege, it will say so in the DESCRIPTION section at the top of the script.
Contents
--------
archive - Takes a compressed tar snapshot of the current working directory
base64 - Encode/decode ASCII/base64 text from stdin or the command line
biggest - List keywords ordered by length
chpass - Change UNIX login password on multiple hosts
cm2in - Convert centimeters to inches
connect - kermit(1) script to bring serial port 0 on-line
count - Return a vector based on start, stop, and step values
create - Create a comment header and start editing a source code file
cvss - Show the status of the files in a CVS workarea
diskmon - Display disk space stats at a specified periodic interval
dumpschema - No frills approach to generating a listing of schema tables.
dumptables - No frills approach to generating a compendium of database tables
fails2csv - Extract ssh login failures as comma separated values
ffunlock - Remove Firefox lock file
fnedit - Find regex or string within files and edit the files
fwlog - Monitor the firewall messages and display just the essential info
httpcode - Display info about the supplied HTTP status code(s)
imback - "I'm back": Re sync to network after resume from suspend
installmod - Install the named CPAN Perl module
ip2name - Lookup DNS names for the supplied IP addresses
kill-evolution - Kill lurking evolution(1) processes
lanmon - Monitor the LAN for client activity
linkhere - Make a symlink in ~/bin to a file in "."
lspm - List manually installed CPAN Perl modules and versions
mhp - Modify Headers parser
mm2in - Convert millimeters to inches
mntshare - Mount a Windows network share folder
newwin - Open a new xterm(1) window with your favorite settings
pcvs - pserver adapted cvs(1) command
phpinfo - Run php_info() function to list the PHP config info
prman - Format and print man(1) page(s) to a Postscript printer
prsrc - Format and print source file(s) to a Postscript printer
prtxt - Format and print text files(s) to a Postscript printer
psgrep - Locate process by string in ps(1) sorted list
pstty - Display processes associated with a specified pty
purl - Parse URL strings to display the individual parameters
pushrc - Push your basic ~/.rc files to remote host(s)
pushsshk - Push your ssh public key(s) to remote host(s)
pushxauth - Push the authority records for local X displays to a remote host
rdc - Forward a remote desktop connection to a remote LAN via ssh
rpmgrep - Search for installed RPM(s) using regex
scale - Write a scale line (or fixed length comment) to stdout
scanlog - Scan secure log for ssh login cracking attempts
shellfns - Some handy functions for your shell
sortbyid - Sort passwd or group entries on stdin in ascending order
sortbyip - Sort IP addresses on stdin in ascending order
spinloop - Run some children in a tight loop to put load on the processor
startwf - Configure and start WLAN interface using profile names
sysbackup - Backup key operating system configuration files
syserr - C program that displays the error message for a system error number
systray - Launch common system configuration applications by keyword
taillog - Tail a remote server's logfile in real-time
vnc - Forward a vnc connection to remote LAN via ssh
wt - "Who's there?" on the LAN
LICENSE.txt - the Academic Free License, v2.1
README.txt - This file
install.sh - Installs the futil symlinks in ~/bin
uninstall.sh - Removes the futil symlinks from ~/bin
Abbreviations
-------------
ARP - Address Resolution Protocol
CPAN - Comprehensive Perl Archive Network
CTS - Clear to Send
CVS - Concurrent Versions System
DNS - Domain Name Service
EUID - Effective User ID (see the setuid man page)
LAN - Local Area Network
RDC - Remote Desktop Connection
regex - Regular Expression(s)
RPM - Red Hat Package Manager
RTS - Request to Send
SMB - Server Message Block (the Windows file sharing protocol)
ssh - Secure Shell
sudo - Switch User and Do
vnc - Virtual Network Computing
VPN - Virtual Private Network
WEP - Wireless Encryption Protocol
WLAN - Wireless Local Area Network
Details
-------
archive
Takes a compressed tar(1) snapshot of the current working directory,
and saves it to an archive area.
Notes:
The script uses sudo(8) to switch to EUID root. Therefore, you must
have sudo privileges for the operation to succeed.
To restore the files from the archive to the current working directory,
preserving the original owner, group, access time, and permissions,
use a tar(1) command like the following:
tar --atime-preserve --bzip --extract --preserve-permissions \
--file /export/backups/archive/archive-archive-pid3473.tbz
base64
A Perl script, which converts ASCII text input to base64, or base64
input to ASCII text.
Note: Work in progress.
biggest
A Perl script, which lists the supplied keywords in order by length.
Example:
biggest a, bb, ccc, dddd, eeeee, ffffff, ggggggg, ...
Output will look like the following:
7 ggggggg
6 ffffff
5 eeeee
4 dddd
3 ccc
2 bb
1 a
chpass
Calls passmass(1) to change the login password on multiple hosts.
The process is:
1. Read the ~/.chpass file for a list of hosts
2. If -nocheck is specified, skip to step 3. Otherwise, attempt to
ssh(1) to each host and confirm that it's possible to login.
3. If the user OKs proceeding, then collect the current and new login
passwords.
4. Use passmass(1) to login to each host in ~/.chpass, run passwd(1),
and change the password.
cm2in
Converts centimeters to inches (or polygon dimensions in centimeters
to inches).
Example 1:
cm2in 2.54
Output will look like:
1.0 in
Example 2:
cm2in 2.54 25.4 254.00
Output will look like the following:
1.0 x 10.0 x 100.0 in
connect
A quick kermit(1) wrapper that opens a connection to serial port 0.
Example:
connect
Result:
Connects to serial port 0, at 38,400 BAUD, with RTS/CTS
flow control.
count
A useful function within shell programs, as a for-loop primer.
Example 1: Loop from 1 to 100.
for i in `count 1 100`; do
echo Loop iteration $i
done
Example 2: Count from 2 to 20 by twos.
$ count 2 20 2
2 4 6 8 10 12 14 16 18 20
create
A Perl script, which creates comment header templates, sometimes
with prototype code, for various coding types including .c, .cpp,
.exp (expect), .java, .php, .pl, .pm, .py, .sh, and .tcl.
Note: If the named file already exists, the header template will be
prepended to the existing file content.
If the file doesn't exist, then it will be created, with the template
content at the beginning
In either case, the resulting file will be brought up in $EDITOR
automatically, so you can start editing it further.
Example:
create myscript.pl
Creates a Perl-style template for "myscript.pl" and brings it up
in $EDITOR.
cvss
Lists the status of CVS files in the current working directory
and below.
Example:
cvss
Output will look like:
File: cvss.sh Status: Up-to-date
Tip: Try the "-lm" option, to see just the files with "Locally
Modified" status
diskmon
Displays the disk space stats at the specified periodic interval.
The interval may be specified in the ~/.futilrc file (1,800 sec or
30 min by default), or may be specified directly on the command line.
Example:
diskmon 20
This displays the disk space stats every 20 seconds.
On Cygwin, the output will look like:
diskmon: Display a disk stats snapshot every 1800 seconds.
Fri Aug 1 10:54:59 PDT 2008
Filesystem 1M-blocks Used Available Use% Mounted on
C:\cygwin\bin 41685 14638 27047 36% /usr/bin
C:\cygwin\lib 41685 14638 27047 36% /usr/lib
C:\cygwin 41685 14638 27047 36% /
c: 41685 14638 27047 36% /cygdrive/c
d: 30711 486 30225 2% /cygdrive/d
h: 844339 777159 67180 93% /cygdrive/h
...
dumpschema
A no frills approach to generating an HTML listing of schema tables.
This script will dump a MySQL or Oracle database schema so a webpage of
properties is produced.
Process:
1. Make a list of the database tables in the tables.txt file.
2. Run dumpschema to produce a query.sql output file.
3. Invoke a SQL client using the query.sql file as input and get HTML out.
See the dumpschema script's comment block for futher information.
dumptables
No frills approach to generating a compendium of database tables.
This script will dump a MySQL or Oracle databaesetables so a webpage of
their elements is produced.
Process:
1. Make a list of the database tables in the tables.txt file.
2. Run dumptables to produce a query.sql output file.
3. Invoke a SQL client using the query.sql file as input and get HTML out.
See the dumptables script's comment block for further information.
ffunlock
Removes the Firefox web browser lock file.
This script is useful when the Firefox browser has terminated
abnormally, leaving its lock file behind, which prevents a subsequent
browser instance from running.
Example:
ffunlock
Output will look like:
Lock file found:
lrwxrwxrwx 1 username usergroup 15 Dec 10 16:43 /home/username/.mozilla/firefox/abcdef5b.default/lock -> 127.0.0.1:+1235
Do you want to delete it? (y/[n])
Or:
No lock file found.
fnedit
Find a regex or literal string in files and then edit them.
This script combines egrep(1) searches with $EDITOR invocations.
For example, say you want to edit all files that contain the string
#include "api_errno.h", then run fnedit this way:
fnedit "#include \"api_errno\\.h\"" *.c *.h
The above will launch $EDITOR with the list of files that contain
the string. Furthermore, the string can be a regular expression,
allowing the full power of regex to be applied.
httpcode
Display info about the supplied HTTP status code(s).
Always wanted more info at your finger tips about what those pesky
HTTP status codes really mean? Then httpcode is your friend!
Example:
httpcode 303
Output will look like:
WATS.ca - web accessibility technical services | HTTP Status Codes (and what they mean)
HTTP Code 303:
See Other/Redirect
A preferred alternative source should be used at present.
imback
Useful to bounce the active network interface and re sync to the
network timehost, following resume from suspend state.
Example:
imback eth1
Output will look like:
Stopping eth1
Starting eth1
Syncing to Internet timehost
sudo ntpdate -u time.nist.gov
Looking for host time.nist.gov and service ntp
host found : time.nist.gov
11 Dec 05:55:26 ntpdate[1343]: adjust time server 192.43.244.18 offset -0.013870 sec
Notes:
1. "imback" stands for "I'm back!"
2. "eth0" is assumed by default.
3. "time.nist.gov" is assumed as the network timehost by default.
installmod
Installs the named CPAN Perl module; requires sudo privilege.
Note: installmod uses sudo(8), because storing into the /usr/lib/perl5
area will often require it. Therefore, you must have sudo(8) privilege
for the operation to succeed.
Example 1:
installmod Net::SSL
Example 2:
installmod Bundle::CPAN
ip2name
Looks up the supplied IP address(es) and returns the canonical
names as comma-separated values, which may then be imported into a
spreadsheet program if desired.
Example:
ip2name 216.109.117.107 216.109.117.108 216.109.117.109
Output will look like:
216.109.117.107,p22.www.dcn.yahoo.com
216.109.117.108,p23.www.dcn.yahoo.com
216.109.117.109,p24.www.dcn.yahoo.com
kill-evolution
Sometimes if the evolution(1) personal information manager dies,
it isn't possible to restart it successfully until its supporting
processes are killed, too. This script kills the lurkers, so evolution
can be restarted cleanly.
Example:
kill-evolution
Output will look like:
Killing processes:
123 456 789
Or:
No lurkers!
lanmon
Runs tcpdump(1) in promiscuous mode to monitor the LAN, while
filtering out localhost transactions. This results in a display of
remote client transactions.
Note: lanmon uses sudo(8), because managing the local network interface
will require it. Therefore, you must have sudo(8) privilege for the
operation to succeed.
Example:
lanmon
Output will look like:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
03:47:38.716661 arp who-has host1 tell server1.foo.com
03:47:39.716427 arp who-has host1 tell server1.foo.com
03:47:40.716199 arp who-has host1 tell server1.foo.com
...
linkhere
Very useful script, which will set a symlink in your ~/bin directory
to point to the named object in the current working directory.
This allows you to effectively add executable files to your ~/bin
directory, which reside somewhere else. Furthermore, if the files
are in your CVS workarea, then you can work on them, and execute
them from the shell command line, too. So who says "You can't have
your cake and eat it too?"
Example:
linkhere myscript.pl
Output will look like:
Linking /home/username/bin/myscript -> ./myscript.pl
Now, type "myscript" at the shell command line, and it will execute
directly.
lspm
List all the locally installed Perl modules.
Example:
lspm
Output will look like:
Compress::Zlib,1.40
Crypt::SSLeay,0.51
DBD::Oracle,1.16
libwww-perl,???
Perl,5.8.3
Time::HiRes,1.68
Time::Local,1.11
XML::LibXML,1.58
XML::LibXML::Common,0.13
XML::NamespaceSupport,1.09
XML::SAX,0.12
XML::Twig,3.17
Note: Not all the installed Perl modules will be listed, just the
ones locally installed by the "perl -MCPAN" package.
mhp
Modify Headers parser: Uncompresses and parses the exported data
from the Firefox Modify Headers add-on and extracts the <header>
elements, one element per line. The resulting output can be sorted,
manually edited, and otherwise manipulated, then compressed back,
and re-imported to the Modify Headers add-on.
mm2in
Convert millimeters to inches.
Example 1:
mm2in 25.4
Output will look like:
1.0 in
Example 2:
mm2in 25.4 254 2540
Output will look like:
1.0 x 10.0 x 100.0 in
newwin
Open a new xterm(1) window with your favorite settings.
Example:
newwin
This invokes a new xterm(1) window with your favorite settings.
Since the default xterm settings are clunky, unconventional, and
ultimately lacking, use newwin as is or customize the settings the way
you like them. By default, the window size will be 95 cols x 35 rows,
the xterm scrollbar will be placed on the right-hand side, there will
be 8K lines scrollback buffer, and the visable alert will be enabled.
mntshare
Mount a remote Windows Share for local access by Linux.
Example:
mntshare corp/george //filer/share
This mounts the Windows UNC "//filer/share" locally as
"/mnt/filer/share", using the Windows "corp" domain and user "george".
Notes:
1. mntshare uses sudo(8), because performing a mount operation
will require it. Therefore, you must have sudo(8) privilege for the
operation to succeed.
2. It also uses the smbmount(8) command. On Ubuntu, this requires the
smbfs package to be installed. On Fedora, it requires the samba-client
RPM to be installed.
3. You will also be prompted to supply your Windows password.
4. mntshare doesn't apply to Cygwin.
pcvs
Command line access to a pserver-based CVS repository on the local
network or the Internet.
Anonymous or authenticated access may be used; anonymous access
is assumed by default.
The following environment variables apply:
PCVSHOST The CVS server hostname ("cvs.sourceforge.net" assumed)
PCVSUSER The CVS username ("anonymous" assumed)
PCVSROOT The CVSROOT ("/cvsroot" assumed)
PCVSPROJECT The CVS project name (none assumed)
Command usage is just like the cvs(1) command, but the above
environment variable values will be used automatically.
Example:
PCVSPROJECT=futil; export PCVSPROJECT
cd futil/pcvs
pcvs status
Output will look like:
cvs status: Examining .
===================================================================
File: pcvs.sh Status: Up-to-date
Working revision: 1.1.1.1
Repository revision: 1.1.1.1 /cvsroot/futil/futil/pcvs/pcvs.sh,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
phpinfo
Writes an HTML page to stdout that describes the local PHP installation
in great detail.
prman
Formats and spools a man(1) page to the default printer in Postscript
format.
You may give the man section followed by one or more man page names
to be printed (see Example 2).
Note: The $MANPATH environment variable provides the colon-separated
list of directories to search.
Example 1:
prman 1 cat echo ls
Output will look like:
Printing man page /usr/share/man/man1/cat.1
Printing man page /usr/share/man/man1/echo.1
Printing man page /usr/share/man/man1/ls.1
3 man pages sent to the printer
Example 2:
prman -s 3 malloc
Output will look like:
Printing man page /usr/share/man/man3/malloc.3
1 man pages sent to the printer
prsrc
Formats and spools the named source file(s) to the default printer
in Postscript format.
Output will be line wrapped, will include line numbers, indented using
1 tab = 4 spaces, and will be formatted in Courier 9pt font by default.
If $PRINTER is set in the shell environment, then the output will
be sent to that printer. Otherwise, it will be sent to the system
default printer (if any).
Example:
prsrc prsrc.sh
Output will look like:
1 files sent to the printer
prtxt
Formats and spools a text file to the default printer in Postscript
format.
Output will be line wrapped, indented using 1 tab = 4 spaces, and
will be formatted in Courier 9pt font by default.
If $PRINTER is set in the shell environment, then the output will
be sent to that printer. Otherwise, it will be sent to the system
default printer (if any).
Example:
prtxt prtxt.sh
Output will look like:
1 files sent to the printer
psgrep
Runs ps(1), displays processes ordered and indented by by parent-child
relationships, configures a simple regex string search, and pipes
the output through $PAGER. The search string hits are highlighted
and researchable as well.
Example:
psgrep 'k*'
Output will look like:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 02:58 ? 00:00:01 init [5]
root 2 1 0 02:58 ? 00:00:00 [ksoftirqd/0]
root 3 1 0 02:58 ? 00:00:10 [events/0]
root 4 3 0 02:58 ? 00:00:00 [khelper]
root 16 3 0 02:58 ? 00:00:00 [kacpid]
root 164 3 0 02:58 ? 00:00:00 [kblockd/0]
...
All strings starting with 'k', such as those shown above, will be
highlighted and researchable.
pstty
Display processes associated with a specific interactive session (pty).
The processes will be ordered and indented by parent-child relationships.
Example:
pstty 1
Output will look like:
root 4535 4534 0 03:00 pts/2 00:00:00 /bin/ksh
root 4834 4535 0 03:14 pts/2 00:00:00 xclock
root 4872 4535 0 03:23 pts/2 00:00:01 vi README.txt
...
Tip: Use the w(1) command to display candidates of interest for pstty.
purl
purl parses the URLs in one or more named files (or stdin) separating
the individual parameters to make them easier to see.
pushrc
Push common .rc configuration files to one or more remote systems.
Note: Transport occurs using scp(1), so the remote system must be
running the ssh service (sshd).
The following files will be pushed (if present):
.bash_logout, .bash_profile, .bashrc, .exrc, .ksh_dirfns,
.kshexit, .kshinit, .ksh_lpna, .kshrc, .mailrc, and .profile
Tip: Use pushsshk first, to push your ssh public key(s) to the
remote systems, so you will not have to type in your password over
and over again.
pushsshk
Push your ssh(1) public key(s) to one or more remote systems.
Note: Transport occurs using scp(1) and ssh(1) is used also; so the
remote system must be running the ssh service (sshd).
Example:
pushsshk remote-host ...
Tip: Generate your ssh key pair(s) first using the ssh-keygen(1)
command.
For example, to create a DSA key pair:
ssh-keygen -t dsa
Follow the prompts; once the key pair is created, then run pushsshk
to distribute the public key to the remote systems.
pushxauth
Push the authority records for local X displays to a remote host.
Example:
pushxauth remote-host
rdc
Opens a remote desktop connection (rdc), to a Windows system on a
remote LAN, using ssh forwarding.
You probably know how to use the Linux rdesktop(1) command. What's
less obvious is how to run rdesktop to access a Windows system on a
remote LAN, using a secure connection. With ssh forwarding, this is
possible but it's non-trivial to configure. That's where this script
comes in handy.
Process overview:
1) Run rdc to open an authenticated and encrypted ssh connection
to the remote gateway.
Note: A username on the gateway server is required, and you will
have to authenticate by providing the password for that username.
2) The gateway will create a standard connection to the remote
Windows system, and forward the rdc packets to it.
3) In another local window or shell, you open a connection to the
remote Windows system by connecting to the localhost sshd ("rdc
connect").
4) The RDC desktop appears on your local machine and you proceed
with using the remote desktop as usual.
Custom configuration:
Modify the script default settings to meet your network environment
requirements. The script makes the following assumptions by default:
local_port=3389 # The port that Windows listens to for RDC connections
network=192.168.1 # The network address of the remote LAN
server_port=3389 # The port localhost listens to for RDC connections
gateway=GATEWAY # The canonical hostname of the remote gateway
gateway_user=USERNAME # The username on the remote gateway
Usage example:
rdc 101 # Open a connection to 192.168.1.101 remote system
rdc connect # Connect locally to the established RDC connection
Tip: Local firewall configuration can be an issue. Make sure your
firewall accepts loop-back connections for $server_port in particular.
rpmgrep
List installed RPM packages on the system using a regular expression.
Example:
rpmgrep 'lib-[0-9][0-9]*'
Output will look like:
alsa-lib-1.0.3a-2
dbus-glib-0.20-4.1
glib-1.2.10-12.1.1
iiimf-client-lib-11.4-43
iiimf-protocol-lib-11.4-43
imlib-1.9.13-19
rhnlib-1.5-1.1
zlib-1.2.1.2-0.fc2
scale
A Perl script, which writes an 80-character scaled or comment line
to stdout. It's useful for aligning text or comment blocks in your
code. It recognizes various programming language commenting styles,
when you supply the relevant file extension on the command line
(see the supported extensions below). If no extension is given,
then a simple scale line, as shown below, is output.
Usage:
scale [.c|.java|.php|.pl|.sh]
Example 1:
scale
Output will look like:
1---+----1----+----2----+----3----+----4----+----5----+----6--- ...
Example 2:
scale .c
Output will look like:
/************************************************************** ...
Example 3:
scale .py -or- scale .pl
Output will look like:
############################################################### ...
scanlog
Scans the /var/log/secure file for ssh cracking attempts. The finds
are reported on stdout.
Note: Run scanlog using sudo(8), because the secure log permissions
will usually require it.
Example:
sudo scanlog
shellfns
A set of handy functions for your shell (bash or ksh compatible).
Included
--------
attr - Manage the immutable bit on the passwd and group files
codiff - Checkout $1 from RCS and diff it to ./$1
cvsroot - Set or display the CVSROOT and CVS_RSH environment variables
pycat - Expands tabs and cats file (useful for Python files)
setcert - Set client certificate
setdb - Connect to database using registered username and SID(s)
setdsp - Set or display the DISPLAY environment variable
setlcl - Set or display the locale (LC_ALL environment variable)
tbz - tar | bzip2
tgz - tar | gzip
untbz - bzip2 | tar
untgz - gzip | tar
wh - List filenames which have the supplied string
Also, the dirfns.ksh file contains cd, pushd, popd, and dirs functions
for ksh(1).
sortbyid
Sorts lines from /etc/passwd or /etc/group on stdin, in ascending
order by UID or GID, respectively.
Example 1:
sudo vi /etc/passwd
!}sortbyid
The /etc/passwd lines will be sorted by UID.
Example 2:
sudo vi /etc/group
!}sortbyid
The /etc/group lines will be sorted by GID.
sortbyip
A useful script for sorting a list of IP addresses within vi(1)
or other editors.
Example:
sudo vi /etc/hosts
!}sortbyip
The /etc/hosts lines will be sorted by IP, up to the first null line.
spinloop
Useful for the situations where you want to put a fixed load on the
processor, either as a testing activity itself, or as a background activity
for testing an application or system behavior under such a condition.
Spinloop invokes a fixed number of children processes (the default is 10),
each running a tight loop.
Example:
spinloop &
Note: Sending SIGINT to the parent process will cause it to terminate the
children as well.
startwf
Start a wireless connection by profile name. The profiles are defined
in the case statement within the script to define the necessary
values, as shown in the example below.
Note: startwf uses sudo(8), as managing the network interface will
require it. Therefore, you must have sudo(8) privilege for the
operation to succeed.
Example case statement clause:
name)
channel=11 # Channel number
ip="inet 192.168.0.100" # Static IP address
netmask="netmask 255.255.255.0" # Netmask
nic=wlan0 # Wireless interface
shk="<WEP-key-hex-string>"
ssid="station-id" # SSID
;;
Then, run the following command line:
startwf -profile <name>
Where <name> is the label shown for the above profile.
sysbackup
Creates a compressed tar(1) archive, in a predefined location,
containing copies of the most common system configuration files on your
system. Very handy to snapshot the state of your Linux installation.
Notes:
1. Use sudo(8) to run sysbackup, because reading some of the system
configuration files and writing the archive file will usually
require it.
2. The script will store the archive in the /export/backups/system
directory by default. This directory must exist beforehand.
Example:
sudo sysbackup
Output will look like:
Backing up system configuration
Backup completed
File: /export/backups/system/system_config_backup_pid5032.tbz
-rw-rw---- 1 root root 108610 Dec 22 21:42 /export/backups/system/system_config_backup_pid5032.tbz
systray
Systray is keyword-based application and system utility launcher. Use
it to start any of the following:
- The desktop calculator
- The firewall builder app (or to save the firewall rules)
- The system network interface selector and configuration app
- The knotes application
- The Red Hat Network Monitor
- The sound config app
- Sync to network timehost
- Load the VPN driver module
- Start the wallet app
Usage: systray [calc] [fw [save]] [net] [notes] [rhn] [sound|snd]
[time] [vpn] [wallet]
taillog
A handy tool for monitoring the system and apache logs, over the
network in real time. There is some investment in setting up the
ssh key-based auth initially, but it's worthwhile afterward,
as the command functions as if you were operating locally on the
monitored system.
Note: You must have ssh(1) login and sudo(8) access on the remote
system(s) of interest. The easiest setup is to run ssh_keygen(1)
locally, and generate an ssh authentication key pair, then run
the pushssk script to send your ssh public key to each server of
interest. After that, you won't have to type in a password for each
use, but just type the command as shown below.
Example 1:
taillog remote.foo.com
This will tail the /var/log/messages file on remote.foo.com.
Example 2:
taillog remote.foo.com access
This will tail the /var/log/httpd/access_log file on remote.foo.com.
Example 3:
taillog remote.foo.com php_errors
This will tail the /var/log/php_errors file on remote.foo.com.
vnc
Similar to rdc above, but uses the vnc(1) client and protocol instead.
Example:
vnc 106
Usage example:
vnc 106 # Opens a connection to the 192.168.1.106 remote system
vnc connect # Connects locally to the established vnc connection
wt
Short for "Who's there?"
This tool steps through a pool of IP addresses (registered within
the script), pings each, and displays the results and the contents
of the arp(8) cache. Using these methods, you will see which clients
are listening and answering back on the LAN, at least for those
clients configured to answer ping requests.
Note: If the client's IP address is registered in the local /etc/hosts
file, then it will also be listed by hostname, too.
Example:
wt
Output will look like:
### Trying 192.168.1.106 (hostname1)
### Trying 192.168.1.107 (hostname2)
### Trying 192.168.1.108 (hostname3)
64 bytes from 192.168.1.108: icmp_seq=0 ttl=128 time=0.828 ms
### Trying 192.168.1.109
...
ARP Cache:
gateway (192.168.1.1) at 00-AA-11-22-33-0A [ether] on eth0
hostname3 (192.168.1.108) at 00-AA-11-95-17-0D [ether] on eth0
_END_