Tag Archives: cli

Installing and migrating Ubiquity Unifi Controller software

I recently upgraded and expanded the wireless network at the office. We replaced our outdated and failing Linksys WRT54G routers with a set of Ubiquiti Unifi UAP-AC-LITE access points. The process of upgrading the network has been one of the more enjoyable tasks I have been assigned recently and the new wireless system works amazingly well.

This guide outlines installing the Unifi Controller software on an Ubuntu 14.04 server for configuring and managing the access points as well as migration from one controller to another.

Continue reading

Using cron to alert to known error conditions in log file

Recently I’ve been having issues with a VirtualBox machine crashing at random. The only common thread is a line of log file, and so far, google has not been helpful in determining the root cause. This machine is important enough that I need to know when it crashes, but not important enough to actually take the time to fix properly, so I researched and created a command to toss into cron to check the log file for the error line and email me when it finds it.

The command itself is simple. Search the log file with grep, if the search generated results send an email. I tried several iterations of this before finding one that did not email when the search was empty and also did not generate silent errors when empty as well. I run this via cron at 5 minute intervals

To use this command on ubuntu 14.04 you will need to install mailutils and moreutils

Software and versions used or mentioned:
mailutils
mailx
moreutils
ifne

Resources:
Forum post with grep | mailx solution
ServerFault post with ifne solution

Complications of not running SSH on port 22

Traditionally ssh runs on port 22, but that does not mean it has to. Where I work each machine that runs ssh runs it on a different port. I do not know why, but it causes quite a bit of fun when trying to use common ssh based commands that all expect ssh to run on the default port. I have had to figure out more then a few of the workarounds and will share them because I had trouble finding a few of them.

SSH

SSH is easy to connect to a non-standard port, simply use the -p flag followed by the port number. Following is an example:

ssh-copy-id

For those who are not aware, you can create an identity file and copy it to the remote machine to allow you to log in without the need of a password (Link to the guide that taught me). ssh-copy-id assumes that the remote machine is running on port 22 and you have to trick it to change the port. We use the same -p flag as with ssh, but we need to put the whole of the arguments into single quotes for it to work. See the example below:

rsync

rsync has a -e flag for setting which remote shell to use. after the -e flag you put the ssh options like is you were using ssh normally. Be sure to put them inside double quotes or they will get confused with rsync options. See the following example:

scp

SCP is very easy, simply use the -P flag to set the port number, like in the following example:

Resizing VirtualBox disk images

Recently I had the misfortune of having my windows virtual test machine fill up it’s hard drive. When I had created it, my host system had limited space and I only needed to test things in a windows environment inside a browser, so it got a small hard disk image. One day, while installing a new program, it simply ran out.

I could make a new virtual machine and re-install  but that requires configuration, whereas resizing only takes time.

In command line, navigate to the directory with the troubled system’s hard disk image. Since I had exported and imported this machine when I moved from a desktop to my nice new (to me) laptop my disk image was in vmdk format, but you need a vdi format to resize. So first we convert the disk:

Once cloned, you can resize the vdi you just made. Please note that the size is in MB.

The disk is now resized, but not attached to our virtual machine. I simply edited the virtual machine to point to the resized copy. Alternatively you can convert the image back into vmdk and copy it over the original.

(Don’t forget to delete extraneous copies, these files take up a lot of space)

The virtual machine should now have the new resized attached to it and it should be bootable, but the windows install can still only use the original size. We need to alter the partition to make it use the full disk. For this we need to boot into a live Linux disk with GParted. I used the Ubuntu 12.04 install CD, but GParted also have a live image available if you lack an already downloaded disk. Once you have saved the partition, you can shutdown the live disk and reboot into windows, which now has access to the entire resized hard disk image.

Software and versions used:
Ubuntu 12.04 LTS 64-bit (Xubuntu Desktop)
VirtualBox 4.1.12
Xubuntu Desktop 12.04 LTS Live CD
GParted