Loading
Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Sunday, January 2, 2011

Configuring FTP in Isolation Mode in IIS 6

IIS FTP isolation mode enables you to have a separate directory per FTP user. For example if you had a dozen different users that all need access to your FTP server but you did not want them to see any directories but their own you could setup Isolation Mode. Isolation Mode supports users either on the local computer, or if you are a member of a domain it supports domain users.

We will begin by assuming you have FTP (and IIS) installed. Launch IIS Manager (IIS Manager 6.0 in Windows 2008). NOTE: in Windows 2008 make sure you install the IIS Management Console role so you can manage your FTP sites.
  • Delete or disable the default ftp site
  • Create a new FTP site with desired values - at the FTP User Isolation screen select Isolate Users or Isolate Users using Active Directory (which ever works better for your situation)
  • Specify path for your new FTP site
  • Set FTP Site Access Permissions to both Read and Write
Within the root FTP directory you must create either a directory named localuser or <your_domain_name>, depending on which isolation mode you are using.  In my case I am NOT using Active Directory so I created the directory localuser.

Within the localuser or <your_domain_name> directory create the desired user directories and assign each user sufficient permissions to their respective directory.


Example - creating directories:
md ftproot
md ftproot\localuser
md ftproot\localuser\localuser1
md ftproot\localuser\localuser2
md ftproot\localuser\localuser3
Example - setting Create NTFS permissions on each respective directory:
cacls ftproot\localuser\localuser1 /E /G localuser1:C
cacls ftproot\localuser\localuser2 /E /G localuser2:C
cacls ftproot\localuser\localuser3 /E /G localuser3:C

Sunday, January 31, 2010

tcping for Linux

tcping does a TCP connect to the given ip/port combination. The user can specify a timeout in seconds. This is useful in shell scripts running in firewalled environments. Often SYNs are just being dropped by firewalls, thus connection establishment will be retried several times (for minutes) until a TCP timeout is reached. With tcping it is possible to check first if the desired port is reachable and then start connection establishment.

Exit codes:

  • -1: an error occured.
  • 0: port is open
  • 1: port is closed
  • 2: user timeout
Syntax: tcping [-q] [-t timeout_sec] [-u timeout_usec]

  • -q : quiet mode, do not output anything (except error messages)
  • -t : timeout in seconds
  • -u : timeout in microseconds
Download tcping for Linux:

tcping runs under Linux, OpenBSD, Solaris 7/8/9, Solaris 2.6, AIX, and maybe others. Just try.

See also:

Tuesday, January 26, 2010

Multi-CPU Utilization Graphing in Cacti

The past couple days I've been installing and configuring a new version of Cacti (0.8.7c) from a CactiEZ v0.6 installation. I've been using Cacti for years now and love what it does, however I've found that tweaking it is sometimes problematic.  Since I may go several months or a year or more between tweaking my install I have to rely heavily on the community.  While the Cacti forums are great they often have an overload of information and even out-dated information.

One aspect I've tried to get working before in Cacti is multi-CPU graphing, but I've never had great success.  Today though I found a great post by Peter at goldfisch.at on the subject - along with some other pretty good gems as well, such as extending Cacti by adding a 5-year graph, configuring Cacti to gather disk I/O and using advanced ping.  He had a great, concise set of steps to download the correct templates (which I've done before) and get them working correctly (this is where I've had trouble).  I'm going to list those steps with a little tweaking of my own mainly so I have them as a ready reference so somewhere down the road I can do this again, but the credit is all his.  Thanks Peter.

This originates from the Cacti forums post "Multi CPU Utilization Graph" which has links to the templates referenced here.  In fact, you may want to go there to find the latest and greatest on this topic.

Begin by downloading the template(s) you need (these links are all from the thread above which were the most current at the time of this post):
Next, import the template(s) in Cacti (Import Templates under Import/Export on the Console tab).  Before creating graphs for devices using any of these new templates they need to be modified a bit, otherwise they may report incorrect data.  To correct this issue click on Graph Management / CDEFs. You should see Average All data sources - X sources (X depending on your setup and the template(s) you imported).  If for some reason you don't see these listed type average in the search field and click Go.



In turn click on each of the Average All data sources - X sources and perform the following:
  • Delete the current CDEF items, such as, "Item #1 Custom String: a,b,+,2,/"
  • Add the following three items:
    • Item #1 - Special Data Source: ALL_DATA_SOURCES_NODUPS (AKA "All Data Sources (Don't Include Duplicates))
    • Item #2 - Custom String: 2/4/8 (depending on X above)
    • Item #3 - Operator: /
Each should like something like this:



Now you can create the graphs for each device.  Click Devices / <Host Name> / create graphs for this host.  Under Graph Templates for the selected host click the drop-down box next to create and select "Host MIB - Multi CPU Utilization on X Processor Box" then click Create. On the next screen you will be asked the Index Type, Index Value and Output Type ID - you don't need to enter any values, just click Create.  You aren't done yet - one more important step.

Click Graph Management and locate the graph you just created.  Under Supplemental Graph Template Data select the CPUs you wish to graph in your multi-CPU graph. This is most likely HOSTNAME - CPU Utilization - CPU0 (cpu), HOSTNAME - CPU Utilization - CPU1 (cpu) and so on ...



Now that that's done you should have nice multi-CPU graphs.  You could even delete any previously created CPU utilization graphs, but be careful not to delete the data-sources because the multi-cpu-graph needs these sources.  The multi-CPU graphs will even read data from existing sources.

Cacti multi-CPU utilization graph showing device with two CPUs graphed over the past 24 hours and 7 days:



Cacti multi-CPU utilization graph showing device with eight CPUs graphed over the past month and year:


Upgrade Cacti on CactiEZ Installation

After installing CactiEZ v0.6 (as a VM on Windows 2008 Hyper-V) which includes Cacti 0.8.7c I wanted to upgrade to the latest version of Cacti (0.8.7e as of this post). However I was not able to locate any good directions. Jimmy Conner who put together CactiEZ said to follow the directions for upgrading Cacti in the Cacti manual, but they weren't exactly easy to follow. So, after mucking through the upgrade I thought I'd put down my notes.  Here they are.
  • Backup the existing Cacti database (I wasn't too worried about this as I upgraded a new installation):
mysqldump -l --add-drop-table cacti > mysql.cacti
Note: You will probably have to specify the -u and -p flags for the MySQL username and password. This user must have permission to read from Cacti's database or you will end up with an empty backup.
  • Backup the existing Cacti directory (again, since I have a new installation I wasn't too worried about this).  The root for Cacti in CactiEZ is /var/www/html so I executed all the following commands from the /var/www directory:
mv html cacti_backup
  • Download the latest Cacti tarball (0.8.7e as of this writing):

    wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz

  • Extract the Cacti tarball.
tar xzvf cacti-0.8.7e.tar.gz
  • Rename the new Cacti directory to match the old one.
mv cacti-0.8.7e html
  • Edit include/config.php and specify the MySQL user, password and database for your Cacti configuration.

    vi html/include/config.php

    Default CactiEZ include/config.php configuration (vi cacti_backup/include/config.php to view your current config if necessary):
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "CactiMadeEZ";

/* Default session name - Session name must contain alpha characters */
$cacti_session_name = "CactiEZ";
  • Copy the *.rrd files from the old Cacti directory.
cp cacti_backup/rra/* html/rra/
  • Copy any relevant custom scripts from the old Cacti directory. Some script are updated between versions. Therefore, make sure you only over write if the scripts either don't exist or are newer than the distribution's.
cp -u cacti_backup/scripts/* html/scripts/
  • Copy any relevant custom resource XML files from the old Cacti directory. Some resource XML files are updated between versions. Therefore, make sure you only over write if the XML files either don't exist or are newer than the distribution's.
cp -u -R cacti_backup/resource/* html/resource/
  • Set the appropriate permissions on Cacti's directories for graph/log generation. You should execute these commands from inside Cacti's directory to change the permissions.
chown -R cactiuser rra/ log/
(Enter a valid username for cactiuser, this user will also be used in the next step for data gathering.)
  • Finally, point your web browser to:

    http://your-server/

    Follow the on-screen instructions so your database can be updated to the new version.
Wait, there's more. . .

Now we need to download and install the Cacti Official Patches [0.8.7e].  You may want to check the previous link for the latest. NOTE: download and execute these from /var/www/html which is the default root directory for Cacti on CactiEZ.
wget http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch
wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch
patch -p1 -N < cli_add_graph.patch
patch -p1 -N < snmp_invalid_response.patch
patch -p1 -N < template_duplication.patch
patch -p1 -N < fix_icmp_on_windows_iis_servers.patch
patch -p1 -N < cross_site_fix.patch
NOTE: While this upgrade works fine to upgrade Cacti itself you will have to upgrade other CactiEZ components for them to work properly, such as THold, Monitor, Discover, WeatherMap, MACTrack and the Plugin Architecture.  For now you are on your own for those. . .

See Also

Monday, January 25, 2010

Install CactiEZ on Windows 2008 Hyper-V

CactiEZ (Cacti Made Easy) is a self installing Linux Distribution based off CentOS that sets up and configures a customized Cacti install. Everything is designed to be completely automated and working directly out of the box. This compact distro is loaded with extra features such as Syslog and Netflow data collection, Weathermaps, Reports, Auto Discovery, Router Config backup, Nagios, and much more!

This guide provides instructions for installing CactiEZ as a VM on Windows 2008 Hyper-V.

This contains some fairly detailed instructions so someone new to this setup should have enough info to get completely running.  However, since I know some of you out there are in a hurry here's the Cliff Notes version:
  1. Don't use the default network adapter - DELETE it!
  2. Add a legacy network adapter.
  3. Install CactiEZ.
Full Instructions for Installing CactiEZ on Windows 2008 Hyper-V

Download the CactiEZ ISO - get this started now so it will be done by the time your're ready for it.  By default the CactiEZ ISO is a tarred file so you will have to untar (unzip) it before you can use it.  If you don't already have a Windows-based program that can handle tarred files 7-zip is a great, FREE, utility.  NOTE: in Windows you may have to unzip twice; CactiEZ-v0.6.tar.gz will unzip to CactiEZ-v0.6.tar from which you can extract CactiEZ-v0.6.iso.

Step One: Create the VM on Hyper-V
  • Launch the Windows Hyper-V Manager (Start, All Programs, Administrative Tools, Hyper-V Manager).
  • Select NewVirtual Machine.  Give it a name.  Click Next.
  • Specify memory (RAM).  In this example I'm using 1024 MB.
  • On the "Configure Networking" screen just click Next - we will delete this later anyway.
  • Create a new virtual hard disk using the name, location and size of your choosing.  I created a 10GB virtual HD which should be more than enough for CactiEZ.
  • On the "Installation Options" screen make sure to choose "Install and operating system later."
  • Click Next, uncheck "Start the virtual machine after it is created" and verify your settings, then click Finish.
    At this point if your VM started you will receive a boot failure message.  Don't worry, you can safely ignore this and Turn Off the VM.

    Step Two: Customize VM Settings
    • From Hyper-V Manager right-click your new VM, then select Settings.
    • Remove the current Network Adapter.
    • Click Add Hardware and select Legacy Network Adapter, then Add.
    • On the Legacy Network Adapter select the correct adapter from the Network drop-down list
    • Click OK to save settings.
    Step Three: Install CactiEZ
    • Double-click your VM to open the Virtual Machine Connection window.
    • Click Media, DVD Drive, Insert Disk and browse to your (extracted/unzipped) CactiEZ ISO.
    • Start (Power On) the VM & it will begin the CactiEZ server installation.
    • Select whether to install the 32 or 64-bit version and let her rip.  The CactiEZ installation is almost completely automated so just let it run.  When prompted reboot the VM.
    After the system reboots its IP address will be displayed (assuming you have a DHCP server available on the network).  You can certainly change the IP address to a static one if you'd like (instructions below).


    Step Four: Logon to Your CactiEZ Server
    Now that your server is installed logon through the Virtual Machine Connection window.  The default username and password are root, CactiEZ.

    Once logged on the first thing I did was set a static IP address using:
    netconfig
    With the IP address and related settings set appropriately restart the network using:
    service network restart
    You may also want to synchronize your time using:
    ntpdate -u 0.pool.ntp.org
    And set your timezone with:
    yum install system-config-date
    system-config-date
    See more CactiEZ tips and hints here.

    NOTE: By default CactiEZ installs SSH so you can connect remotely with something like PuTTY.

    Step Five: Connect to and Configure Cacti
    Using a browser connect to your new installation of Cacti using http://<IP Address>.  The default user is 'admin' and the default password is 'admin' as well.  You will be prompted to change the password.

    Now you can knock yourself out configuring and using Cacti.  Here's more logon information from CactiEZ.

    See also

    Ubuntu VM on Windows 2008 Hyper-V

    How the Hell do I get networking to work on a Ubuntu VM on Hyper-V in Windows 2008?

    This is a question I have personally grappled with a few times.  Although I was able to successfully install a Ubuntu 8.10 server on Hyper-V with networking over a year ago I forgot how it was done and pulled my hair out trying to figure it out again the other day.  So I thought I'd jot down a few notes to help me remember.  If this  helps anyone else, that will be great too.

    These instructions are for Ubuntu 9.10 server on Windows 2008 Hyper-V.  As mentioned above this works for Ubuntu 8.10 server as well; and presumably other versions although I haven't verified.

    This contains some fairly detailed instructions so someone new to this setup should have enough info to get completely running.  However, since I know some of you out there are in a hurry here's the Cliff Notes version:
    1. Don't use the default network adapter - DELETE it!
    2. Add a legacy network adapter.
    3. Install Ubuntu.
    Full Instructions for Installing Ubuntu 9.10 Server on Windows 2008 Hyper-V

    Download the Ubuntu 9.10 server ISO - get this started now so it will be done by the time your're ready for it.

    Step One: Create the VM on Hyper-V
    • Launch the Windows Hyper-V Manager (Start, All Programs, Administrative Tools, Hyper-V Manager).
    • Select New, Virtual Machine.  Give it a name.  Click Next.
    • Specify memory (RAM).  In this example I'm using 1024 MB.
    • On the "Configure Networking" screen just click Next - we will delete this later anyway.
    • Create a new virtual hard disk using the name, location and size of your choosing.
    • On the "Installation Options" screen make sure to choose "Install and operating system later."
    • Click Next, verify your settings, then click Finish.
      At this point if your VM started you will receive a boot failure message.  Don't worry, you can safely ignore this and Turn Off the VM.

      Step Two: Customize VM Settings
      • From the VM Window click File, Settings.
      • Remove the current Network Adapter.

      • Click Add Hardware and select Legacy Network Adapter, then Add.
      • On the Legacy Network Adapter select the correct adapter from the Network drop-down list

      • Click OK to save settings.
      Step Three: Install Ubuntu
      • Click Media, DVD Drive, Insert Disk and browse to your Ubuntu ISO.

      • Start (Power On) the VM & it will begin the Ubuntu Server installation.
      • Select your Language, then "Install Ubuntu Server."
      • Select your desired Country and keyboard layout.
      • Enter your desired hostname, then continue.
      • Select your timezone.
      • Partition your disk using the default, "Guided - use entire disk and set up LVM."
        • Select your disk to partition - if you followed these instructions you will only have one.
        • Select YES to write the changes to disks and configure LVM.
      • Follow the prompts to setup users and passwords, creating at lease one user.
      • Select whether or not to encrypt your home directory.
      • If you have a DHCP server on your network your adapter should retrieve and IP address and associated info from that server.  If not, you will be prompted for IP address settings.
      • Choose how to manage upgrades on your system.
      • Choose which software to install (note, depending on which option(s) you select additional questions will be asked during install which aren't covered in this tutorial):
        • Cloud computing cluster
        • Cloud computing node
        • DNS server
        • LAMP server
        • Mail server
        • OpenSSH server - You may want to install this to connect via SSH later.
        • PostgreSQL database
        • Print server
        • Samba file server
        • Tomcat Java server
        • Virtual Machine host
        • Manual package selection
      • At the "Finishing Installation" screen select Continue.
      Step Four: Logon to Your Ubuntu Server
      Now that your server is installed logon through the Virtual Machine Connection window to verify network settings and connectivity.  Type ifconfig to view your network settings.  You should have an interface, eth0, with either a DHCP-assigned address or the one you manually entered during installation.



      You could verify correct network operation by pinging a know good host on your local network and/or a host on the Internet.  In my case I pinged my default gateway and powercram.com.  Both responded with replies.



      Finally, now that my Ubuntu Server is setup and networking is configured properly I will probably never (hopefully) use the Virtual Machine Connection window again, rather I will use my favorite remote connection client, PuTTY.

      Since I neglected to install Open-SSH Server during the Ubuntu installation I had to install it before I could use PuTTY using:
      sudo apt-get install openssh-server



      Recover Root Password In Ubuntu - HowTo

      You can recover/reset/change your root password on Ubuntu if you have physical access to the machine following these simple steps.
      1. Reboot Ubuntu.
      2. At the GRUB menu press ‘e’ (with quotes), which will let you edit GRUB.
      3. Edit the line with your boot command.
      4. Add this command to the very end of the line with the boot command:
        rw init=/bin/bash
      5. Press enter and boot your system, the command, "rw init=/bin/bash" will make your Ubuntu boot with passwordless root shell.
      6. Once you're logged on just change your password with the passwd <username> command. If it is root just type: passswd root.
      7. Reboot your system.

      Change Ubuntu IP Address from DHCP to Static or Vice Versa - HowTo

      The default network setting in Ubuntu (or Debian) is to use DHCP.  Often, however, it is desirable to use a static IP address and settings.  To change your network configuration from DHCP to static follow these steps.

      Open a terminal session and enter:
      sudo nano /etc/network/interfaces
      Two network interfaces should be listed, lo and eth0:
      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).

      # The loopback network interface
      auto lo
      iface lo inet loopback

      # The primary network interface
      auto eth0
      iface eth0 inet dhcp

      Change eth0 to your desired settings, such as:
      auto eth0
      iface eth0 inet static
      address 192.168.1.10
      netmask 255.255.255.0
      network 192.168.1.0
      broadcast 192.168.1.255
      gateway 192.168.1.1

      Save the file and close using Ctl+X, Y, Enter.

      Restart the network to apply the new setting, with this command:
      sudo /etc/init.d/networking restart
      Verify your network settings with:
      ifconfig
      See also

      Sunday, January 24, 2010

      Windows 7 Mortgage Calculator

      In Windows 7 Microsoft has added new capabilities:  Mortgage Calculator, Fuel economy and Vehicle lease.  To access these features open the Windows calculator then click View, Worksheets, then click the worksheet for the calculation you want.



      Under Select the value you want to calculate, click the variable that you want to calculate, then enter the known values in the text boxes and then click Calculate.  In the following example we are trying to determine the monthly payment so we enter the purchase price, down payment, term and interest rate.



      Don't forget the result will be the monthly payment amount for the actual loan and doesn't include insurance or taxes.

      See also Unit Conversion with the Windows 7 Calculator.

      Unit Conversion with the Windows 7 Calculator

      Besides adding a mortgage calculator, Microsoft has added a number of conversion functions to the new and improved calculator in Windows 7.  You can easily perform conversions between units of power, time, volume, and mass.  Start by opening the Windows 7 Calculator - Start / All Programs / Accessories / Calculator.

      Within Calculator select View, then Unit Conversion. Or, press Ctrl + U.  A unit conversion pane appears to the right of the calculator. Underneath "Select the type of unit you want to convert", click the pull-down and select your unit type, then in the From field enter the desired value.  Select what you want it converted to and the converted value will be displayed in the To field.

      Windows 7 Calculator Supported Unit Types

      Angle
      • Degree
      • Gradian
      • Radian
      Area
      • Acres
      • Hectares
      • Square centimeter
      • Square feet
      • Square inch
      • Square kilometer
      • Square meters
      • Square mile
      • Square millimeter
      • Square yard
      Energy
      • British Thermal Unit
      • Calorie
      • Electron-volts
      • Foot-pound
      • Joule
      • Kilocalorie
      • Kilojoule
      Length
      • Angstrom
      • Centimeters
      • Chain
      • Fathom
      • Feet
      • Hand
      • Inch
      • Kilometers
      • Link
      • Meter
      • Microns
      • Mile
      • Millimeters
      • Nanometers
      • Nautical miles
      • PICA
      • Rods
      • Span
      • Yard
      Power
      • BTU/minute
      • Foot-pound/minute
      • Horsepower
      • Kilowatt
      • Watt
      Pressure
      • Atmosphere
      • Bar
      • Kilo Pascal
      • Millimeter of mercury
      • Pascal
      • Pound per square inch (PSI)
      Temperature
      • Degrees Celsius
      • Degrees Fahrenheit
      • Kelvin
      Time
      • Day
      • Hour
      • Microsecond
      • Millisecond
      • Minute
      • Second
      • Week
      Velocity
      • Centimeter per second
      • Feet per second
      • Kilometer per hour
      • Knots
      • Mach (at std. atm)
      • Meter per second
      • Miles per hour
      Volume
      • Cubic centimeter
      • Cubic feet
      • Cubic inch
      • Cubic meter
      • Cubic yard
      • Fluid ounce (UK)
      • Fluid ounce (US)
      • Gallon (UK)
      • Gallon (US)
      • Liter
      • Pint (UK)
      • Pint (US)
      • Quart (UK)
      • Quart (US)
      Weight / Mass
      • Carat
      • Centigram
      • Decigram
      • Dekagram
      • Gram
      • Hectogram
      • Kilogram
      • Long ton
      • Milligram
      • Ounce
      • Pound
      • Short ton
      • Stone
      • Tonne

      Friday, January 22, 2010

      Use Iperf to Measure Network Throughput (Bandwidth) on Windows or Linux

      Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.
      • Install iperf on Windows - just download, unzip and run iperf.exe.
      • Install iperf on Ubuntu:
          sudo apt-get install iperf
      Iperf supports several options, but generally you would run it on one device as a "server" and another as a "client."

      To launch iperf in server mode just enter iperf -s at the terminal.  It will report, "Server listening on TCP port 5001. . ."


      From another system launch iperf in client mode with iperf -c <server IP>. By default Iperf will run a 10 second test and report amount of data transferred and bandwidth speed.


      Note: Iperf can be used to test LAN speeds as well as over the Internet.

      Download Iperf and get more information from SourceForge.

      Open a Website from the Windows Command Line

      Here are three ways to open a web page from the command prompt from Windows 7, Windows Vista, Windows XP, etc. All of the following examples will open the designated web page in Internet Explorer or other default browser.
      • start <website>
        Example:
        start www.powercram.com
        OR start http://powercram.com
      • \progra~1\intern~1\iexplore <website>
        Example:
        \progra~1\intern~1\iexplore www.powercram.com
        OR \progra~1\intern~1\iexplore http://powercram.com
      • "\program files\internet explorer\iexplore" <website>
        Example (must include quotes):
        "\program files\internet explorer\iexplore" www.powercram.com
        OR "\program files\internet explorer\iexplore" http://powercram.com
      NOTES
      • The first example will open the designated site/page in a new tab of Internet Explorer.  The other two will launch a new instance of the browser.
      • In the examples above <website> must either be preceded by "http://" or "www."

      Wednesday, January 20, 2010

      Bandwidth Monitoring Tools for Ubuntu

      • bmon - Bandwidth monitor and rate estimator
      • bwm-ng - Bandwidth Monitor NG (Next Generation), a live bandwidth
        monitor for network and disk IO
      • cbm - displays the current traffic on all network devices
      • iftop - Real-time bandwidth usage information on a specified interface
      • iperf - Tool for measuring maximum TCP and UDP bandwidth performance
      • ibmonitor - interactive bandwidth monitor
      • pktstat - shows the bandwidth being consumed by packets of various kinds in realtime
      • tcptrack - sniffer which displays information about TCP connections
      • MRTG - see traffic load on a network over time in graphical form
      • Cacti - network graphing solution
      Details on each tool.

      bmon
      bmon is a portable bandwidth monitor and rate estimator. It supports various input methods for different architectures. Various output modes exist, including an interactive curses interface, lightweight HTML output, and simple ASCII output. Statistics may be distributed over a network using multicast or unicast and collected at some point to generate a summary of statistics for a set of nodes.

      Install bmon on Ubuntu:
      sudo apt-get install bmon
      To launch bmon just enter bmon at the terminal.



      You can select a specific interface to view traffic details. In the screen shot below I selected eth0, 'g' for graphical statistics and 'd' for detailed statistics.



      bwm-ng
      bwm-ng can be used to monitor the current bandwidth of all or some specific network interfaces or disks (or partitions). It shows total of in and out as well as total of all interfaces/devices.

      Install bwm-ng on Ubuntu:
      sudo apt-get install bwm-ng
      To launch bwm-ng just enter bwm-ng at the terminal.



      cbm
      cbm (Color Bandwidth Meter) displays the current traffic on all network devices.

      Install cbm on Ubuntu:
      sudo apt-get install cbm
      To launch cbm just enter sudo cbm at the terminal.



      iftop
      iftop provides real-time bandwidth usage information on a specified interface, listed by host pairs.

      Install iftop on Ubuntu:
      sudo apt-get install iftop
      To launch iftop just enter iftop at the terminal.

      Iperf
      Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.

      Install iperf on Ubuntu:
      sudo apt-get install iperf
      Iperf supports several options, but generally you would run it on one device as a "server" and another as a "client."

      To launch iperf in server mode just enter iperf -s at the terminal.  It will report, "Server listening on TCP port 5001. . ."



      From another system launch iperf in client mode with iperf -c <server IP>. By default Iperf will run a 10 second test and report amount of data transferred and bandwidth speed.



      Note: Iperf can be used to test LAN speeds as well as over the Internet.

      ibmonitor
      ibmonitor is an interactive linux console application which shows bandwidth consumed and total data transferred on all interfaces.

      Its main features are:
      • Shows received, transmitted and total bandwidth of each interface
      • Calculates and displays the combined value of all interfaces
      • Displays total data transferred per interface in KB/MB/GB
      • Values can be displayed in Kbits/sec(Kbps) and/or KBytes/sec(KBps)
      • Can show maximum bandwidth consumed on each interface since start of utility
      • Can show average bandwidth consumption on each interface since start of utility
      • The output with all features (max, avg and display in Kbps and KBps) easily fits on a 80x24 console or xterm
      • Can interactively change its output display format depending on key pressed by user.
      Install ibmonitor on Ubuntu"

      First you need to download the latest version:
      wget http://ovh.dl.sourceforge.net/sourceforge/ibmonitor/ibmonitor-1.4.tar.gz
      Extract this file using the following commands
      tar xvfz ibmonitor-1.4.tar.gz
      cd ibmonitor
      If you want to run the application use the following command

      Once you are in ibmonitor folder use
      ./ibmonitor


      pktstat
      pktstat listens to the network and shows the bandwidth being consumed by packets of various kinds in realtime. It understands some protocols (including FTP, HTTP, and X11) and adds a descriptive name next to the entry (e.g., ‘RETR cd8.iso’, ‘GET http://slashdot.org/’ or ‘xclock -fg blue’).

      Install pktstat on Ubuntu:
      sudo apt-get install pktstat
      To launch pktstat just enter pktstat at the terminal.



      tcptrack
      tcptrack is a sniffer which displays information about TCP connections it sees on a network interface. It passively watches for connections on the network interface, keeps track of their state and displays a list of connections in a manner similar to the unix ‘top’ command. It displays source and destination addresses and ports, connection state, idle time, and bandwidth usage.

      Install tcptrack on Ubuntu:
      sudo apt-get install tcptrack
      To launch tcptrack just enter sudo tcptrack -i eth0 at the terminal.

      tcptrack can also take a pcap filter expression as an argument. The format of this filter expression is the same as that of tcpdump and other libpcap-based sniffers. The following example will only show connections from host 10.1.1.2
      tcptrack -i eth0 src or dst 10.1.1.2
      The next example will only show web traffic (ie, traffic on port 80)
      tcptrack -i eth0 port 80
      MRTG
      MRTG (Multi Router Traffic Grapher) is free software for monitoring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form.  MRTG is used by programs like Cacti to gather and graph stats over time.

      Cacti
      Cacti is a complete network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive,easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.

      Cacti is great for gathering stats over time (using both MRTG and RRDTool) and creating hourly, daily, weekly, monthly and yearly graphs.  These graphs can be invaluable in identifying trends and potential problems.  In fact, just today I used the following graphs to identify a problem on my corporate network:



      Here's another one showing network utilization over time.



      Monday, January 18, 2010

      How To Find DNS Server Addresses in Windows

      On Windows systems you can run the following command to view the current DNS server(s) from a command prompt:
      ipconfig /all
      And look for the "DNS Servers . . ." section.



      See also: How To Find DNS Server Addresses in Linux

      How To Find DNS Server Addresses in Linux

      The resolver is a set of routines in the C library that provide access to the Internet Domain Name System (DNS). The resolver configuration file contains information that is read by the resolver routines the first time they are invoked by a process.

      In Linux/BSD/Unix systems you can run the following command to view the current DNS seerver(s) from a shell prompt:
      cat /etc/resolv.conf
      See also:

      Sunday, January 17, 2010

      How To Use grep Command In Linux

      The grep command searches the given file for lines containing a match to the given strings or words. By default, grep prints the matching lines. grep can be used to search for lines of text that match one or many regular expressions, and outputs only the matching lines.

      grep Syntax
      grep 'word' filename
      grep 'string1 string2' filename
      cat otherfile | grep 'something'
      command | grep 'something'
      grep Examples
      • Use grep to search a file
        Search /etc/passwd for user admin:
      grep admin /etc/passwd
      You can force grep to ignore word case i.e. match admin, Admin, ADMIN or any other combination with the -i option:
      grep -i "admin" /etc/passwd
      • Use grep recursively
        You can search recursively with grep, i.e. read all files under each directory for a string "10.10.1.25"
      grep -r "10.10.1.25" /etc
      • Use grep to search two different words
      grep -w 'word1|word2' /path
      • Count number of lines where word(s) is/are matched
        grep can report the number of times that the pattern has been matched for each file using -c (count) option:
      grep -c 'word' /path
      Also note that you can use -n option, which causes grep to precede each line of output with the number of the line in the text file from which it was obtained:
      grep -n 'word' /path
      • Grep invert match
        The -v option can be used to print inverts of the match; that is, it matches only those lines that do not contain the given word. For example print all lines that do not contain the word invert:
      grep -v invert /path
      • Display CPU Model Name With grep
      grep -i 'model' /proc/cpuinfo
      • Use grep to just list the names of matching files
      grep -l 'word' *.c*
      • Set grep to display output in colors
      grep --color admin /etc/passwd

      How To Edit Linux DNS Configuration Files

      Edit /etc/resolv.conf using a text editor such as nano, vi or gedit:
      nano /etc/resolv.conf
      Or, for Ubuntu:
      sudo nano /etc/resolv.conf
      Add namesevers as necessary:
      nameserver <ip address>
      nameserver <ip address>
      nameserver <ip address>

      Save and close the config file.

      See also Change Ubuntu IP Address from DHCP to Static

      Find the top 10 largest files and directories on Ubuntu

      Unfortunately there is not a simple command in Linux to find the largest files and/or directories. However, combining the following three commands (using pipes) can help you locate the largest files/directories on your file system:
      • du - Estimate file space usage
      • sort - Sort lines of text files or given input data
      • head - Output the first part of files i.e. to display the n largest files/directories
      In Terminal (command prompt) enter the following to list the top 10 largest files/directories:
      sudo du -a / | sort -n -r | head -n 10
      Of course this can be used on various directories as well, like usr or var:
      sudo du -a /usr | sort -n -r | head -n 10
      sudo du -a /var | sort -n -r | head -n 10

      NOTE: This works on all flavors or Linux, UNIX and BSD as well - just drop sudo.

      Saturday, January 16, 2010

      Upgrade Ubuntu Server From 8.10 to 9.10 - How To

      You can use the following steps to easily upgrade Ubuntu Linux server (or workstation) 8.x to 9.10 (latest version as of this posting), either locally or remotely over ssh from a terminal command line.

      Note: Backup important data and configuration files first.

      First, apply latest updates to Ubuntu 8.x using:
      sudo apt-get update
      sudo apt-get upgrade

      Next, install update-manager-core (if it is not already installed):
      sudo apt-get install update-manager-core
      Finally, start the upgrade:
      sudo do-release-upgrade
      And just follow the on-screen instructions to complete the Ubuntu 9.10 upgrade.

      How to update software on Ubuntu / Debian Linux

      Ubuntu (and Debian) software can easily be updated using the apt-get command line tool.

      apt-get can be used from a terminal window as follows:
      • apt-get update: Update is used to resynchronize the package index files from their sources over the Internet.
        To retrieve updated software list, enter:
        sudo apt-get update
      • apt-get upgrade: Upgrade is used to install the newest versions of all packages currently installed on the system.
        Update software, i.e. apply updates:
        sudo apt-get upgrade
      • apt-get install <package-name>: apt-get install can be followed by one or more packages desired for installation. If package is already installed it will try to update to the latest version.
        To upgrade individual software enter apt-get install followed by the software name, as follows:
        sudo apt-get install <package-name>
      apt-get update, apt-get upgrade and apt-get install will all retrieve files over the Internet. The location of update pages is specified in /etc/apt/sources.list (repositories). Unless you need extra repositories for your setup there is no need to modify this file.

      Using Ubuntu Update Manager Tool (GUI)
      The Ubuntu Update Manager Tools works like the Microsoft and Red Hat update manager tools.  In the Ubuntu GUI you will see a little icon in the task bar when updates are available. Just click on it and follow the online instructions.

      You can also start the Update Manager GUI tool by clicking System | Administration | Update Manager.