2013/10/16

Remove Directories Using BASH Find Command

This post is to help me remember how to use the BASH find command to search and remove directories on my linux server. I currently am running an rsync backup command and storing the backups on the server. Each backup is stored as a folder as a date and time. For example '2013-1016-1400' would be a backup that occurred on October 16, 2013 at 1400 hours (2 pm).

List of Commands with Explanation

list only directories
  ls -d */

Search examples

! = do not find
example: ! -name "2013*" # do not find file name beginning with "2013"

Find year 2013, months 5-8, day 31, but not time 22**
 find . -maxdepth 1 -name "2013-0[578][3][01]-*" ! -name "*-22??"


Find year 2013, months 5-8, day 31, but not time 22**, and then delete directory
find . -maxdepth 1 -name "2013-0[578][3]1-*" ! -name "*31-22*" -print0 | xargs -0 rm -vR

Find year 2013, month 6, all days, but not date and time 0628-2001
 find . -maxdepth 1 -name "2013-06*-*" ! -name "*0628-2001"

Find year 2013, month 6, all days, but not date and time 0628-2001, and then delete directory
 find . -maxdepth 1 -name "2013-06*-*" ! -name "*0628-2001" -print0 | xargs -0 rm -vR








2013/09/25

Hot Swap (remove and add) a RAID 1 disk in Ubuntu 13.04

Edit 2015-0630: Do not use the below as a backup solution. A better solution I now use is rsync to mirror my raid array to an external LUKS encrypted hard drive.  
This article shows you how to remove a disk from a RAID 1 array in Ubuntu 13.04 and add a new disk to the Array. This is known as hot swapping when you replace the drive without shutting the computer down.

I have a home server that I back up all my data to from all my different devices and computers. This data is on an encrypted LUKS filesytem with software RAID 1 array. A RAID 1 Array requires a minimum of 2 disks and the disks are mirrored so that if one disk fails, you still have your data on a second disk. I also like to keep a third disk off site and rotate it into the RAID 1 Array. The off site backup protects my data in case my computer is ever stolen or destroyed in a fire. This is easiest if you have a hot swap hard drive bay in your computer.

Requirements for this to work.
  Linux Operating System
  Mdadm software installed (RAID software)

All of the following commands are in the terminal.
  You will have to replace 'md1' and 'sdd' with your own values from your machine.

  • Identify disk to remove from Array
    • sudo fdisk -l
  • Fail disk from the Array
    • sudo mdadm /dev/md1 -v --fail /dev/sdd
  • Remove disk from the Array
    • sudo mdadm /dev/md1 -v --remove /dev/sdd
  • Check disk is removed from the Array
    • sudo mdadm --detail /dev/md1
  • Physically remove disk from the machine
  • Insert new disk into machine
  • Check that new disk is seen by machine
    • sudo fdisk -l
  • Add disk to the Array, different method for new disk with no partitions versus readding a disk back to the Array
    • New hard drive with no partitions
      • sudo mdadm /dev/md1 -v --add /dev/sdd
    • Disk that has been part of the Raid Array before
      • sudo mdadm /dev/md1 -v --re-add /dev/sdd
  • Monitor status of Raid rebuild
    • sudo mdadm /dev/md1 --detail
It takes many hours to synchronize new large hard drives.

I use dm-crypt software for disk encryption.

2013/08/23

Nautilus File Manager: Add An Application to "Open With" menu in Ubuntu Linux 13.04

I found myself needing to open .mp3 and .ogg files with an application (pyRenamer) from within the file manager nautilus, also called Files, in Ubuntu Linux 13.04. From within Files, you can right click on a file and a menu opens, then select "Open With" and the application you want the file to open in.
My problem was "pyRenamer" was not listed in the applications and so this post gives instructions on how to add an application to the "Open With" menu in the Files application.

I used information from this site: https://ubuntugenius.wordpress.com/2012/06/18/ubuntu-fix-add-program-to-list-of-applications-in-open-with-when-right-clicking-files-in-nautilus/

1. Find the name of the application you want to open. It is probably found in /usr/share/applications. You can list all the applications in this directory with
ls /usr/share/applications
The name of the application will end in ".desktop", for example pyRenamer.desktop.

2. Edit pyrenamer.desktop file. This method affects all users of the machine.
sudo gedit /usr/share/applications/pyrenamer.desktop
edit the line: Exec=pyrenamer
to: Exec=pyrenamer %F
Save file and exit.
This allows you to select pyRenamer application from within the right click menu:Open With/Other Application... 

3. This is an alternate method of adding an application to the right click "open with" menu. This method is user specific.
Open the file /home/$USER/.local/share/applications/mimeapps.list in your favorite text editor. $USER will be your user name and does not need to be changed if you paste this into the command line.
gedit /home/$USER/.local/share/applications/mimeapps.list

4. Edit this file so that .ogg and .mp3 files can be opened by pyRenamer application. There are two highlighted lines that I added.

 
Hope this helps!

2012/08/28

Install proprietary Nvidia driver in Ubuntu 12.04 64-bit

After trying to update Nvidia graphic drivers, my monitor was not detected properly and was at a lower resolution. The picture also did not fill the whole monitor leaving a 1 inch black border around the window. Below are the steps I took to install the newest Nvidia graphics drivers for Ubuntu 12.04 64-bit. My hardware was an micro-atx Zotac Geforce 8200-itx motherboard with an integrated Geforce 8200 graphics chip.

Links below will only be good for the 295.59 driver version.

  • These instructions come from the Nvidia website found in the "README" file
  • Check if your hardware is supported
  • Check if your software meets the minimum requirements
  • Download driver
  • Disable nouveau open source driver
    • open a terminal and paste in the following commands
    • Create a file to disable nouveau open source driver
      • sudo nano /etc/modprobe.d/disable-nouveau.conf
      • Add the following lines to the file
        • # "#" lines are not read and are for your information
        • # Last updated by Chad Chenault on 2012-0725
        • # file created to install propriety nvidia video driver for geforce 8200 on zotac motherboard
        • # This file prevents the opensource nouveau driver from loading at startup
        • #
        • blacklist nouveau
        • options nouveau modeset=0
        • #
      • press "ctrl + o" to save the file
      • press "ctrl + x" to exit nano 
  • Create help text file
    • Open your favorite text editor (nano or gedit for me)
    • copy and paste text from this blog post other sources into the file
      • save file to your home folder as nvidia.help.txt
        • full path of file is "/home/[your user name here]/nvidia.help.txt"
  • login to 2 console windows
  • open help text file in one window with nano
    • ctrl + Alt + F2
    • open help file in text editor
      • nano ~/nvidia.help.txt
  • Open window to execute commands
    • ctrl + Alt + F1
  • I did not complete the instructions but I am posting any way so that I will be able to find the installation instructions if I need to reinstall the driver.

2012/07/23

List Your Personal Scripts from the Terminal, Alias Solution


last edit: 2012-0723

Notes: If you see brackets "[   ]" in code, that indicates you supply your own variable in place of the brackets. Example: [date] = You type in "2012-0723". Quotes do not have to be included.

One of the things I enjoy about Linux is the fun and power of the scripting with bash and python. However there comes a time when you accumulate so many scripts that you can't remember their names to run them. One solution is to create a keyboard short cut that lists all the scripts in your script directory. So instead of typing:
> clear; ls -l /home/chad/Documents/scripts
The short cut would be:
> lls
 Aliases are created in two places: /etc/bash.rc or ~/.bash_aliases (~ is a shortcut for your home directory, ex. /home/chad). For this example we will add entries to /etc/bash.rc will allow short cuts to all users including root.

Backup /etc/bash.rc in case you make a mistake
> cp /etc/bash.rc /etc/bash.rc.[date].bak or
> cp /etc/bash.rc /etc/bash.rc.2012-0723.bak
 Edit bash.rc with your favorite text editor
> nano /etc/bash.rc
or if using gnome shell or default Ubuntu
> gksudo gedit /etc/bash.rc

Find section labeled "# Alias definitions." and add your alias commands below this section. My examples are below. The first example lists all files in my script directory.
alias lls='clear; ls -l --almost-all --classify /home/chad/Documents/bin'
alias ll='ls --almost-all -l --classify'  # classify indicates file type
alias la='ls --almost-all'           # long, shows hidden files
alias l='ls -C --classify' #Columns, file types
Next save your file and then update your alias variables so that your terminal shell will we aware of them. You update your bash.rc file using the "source" shell command. The source command is useful to load function or variables stored in another file.
> source /etc/bash.rc
Now test your new alias shortcut and you should see all the files listed in your scripts directory.
> lls
You can change formatting of the ls command. See man ls for options.

2012/05/28

Brother HL-2270DW printer driver install: Ubuntu 12.04 64 bit versions

** Update 2016-0717 I am still using this printer on Ubuntu 16.04. Brother now provides the drivers as "deb" files that work with Ubuntu. I would use their drivers instead of the ones that I have here (mine are old now). Also look at the below comment on May 7, 2014 at 3:42 AM by Jo Boug. His method of installation is another good option also.

This post explains how to install Brother HL-2270DW printer drivers in Ubuntu 12.04, 64 bit versions. These instructions also work on Ubuntu 13.04. It should also work for any other Debian linux distributions, however I have only tested this on Ubuntu. Brother does not include 64 bit drivers and thus this why I created this post. There is a previous post on installing in Ubuntu 11.04/11.10 with steps on modifying the Brother 32 bit driver for 64 bit installations http://chadchenault.blogspot.com/2011/09/brother-hl-2270dw-printer-driver.html. The Ubuntu 11.xx instructions will also work for 12.04. The 12.04 includes screenshots and different formatting. You only need to follow my instructions if you are running a 64 bit version of Ubuntu. If you are concerned about security with downloading files that I have patched, you can follow the instructions from the link above to apply the patch yourself. The driver files are current as 05/28/2012.

Instructions

1.   Download the following 2 driver files that have been patched to work on 64 bit versions of Ubuntu. The patched (modified for 64 bit linux) driver files have "a" added to the file name.

  1.1.2   CUPS patched driver

  1.2.2   Brother printer patched driver

2. Open a terminal window "ctrl + alt + t"
2.1 Install file dependency (lib32stdc++) for 64 bit operating system by pasting the following code into a terminal window.
2.1.1  sudo apt-get install lib32stdc++6
2.2   Change into the directory to where the files where downloaded.
2.3   Enter the following two commands from the terminal window. You can copy these commands one at a time and paste them into the terminal window. Press "Enter" key to run the command after pasting.
2.3.1   sudo dpkg -i --force-all hl2270dwlpr-2.1.0-1a.i386.deb
2.3.2   sudo dpkg -i --force-all cupswrapperHL2270DW-2.0.4-2a.i386.deb

USB printing should now work. If you want to configure wifi or ethernet printing, you will need to configure CUPS


3.   Wireless Printing Configuration for wifi (2 methods of configuration: Brothers or CUPS). I prefer the CUPS method.

3.1   Follow Brother's instructions

3.2   Configure printer using CUPS printing system

3.2.1   Open web browser and goto http://localhost:631
3.2.2   login with your Ubuntu user name and password.  If you get a password error (new for 13.10), open a terminal and type in the following command: sudo killall cupsd
3.2.3   Select "Administration" tab up top
3.2.4   Under "Printers" select "Manage Printers"
3.2.5   you will now be at http://localhost:631/printers/?
3.2.5   Select the printer "HL2270DW"
           you will now be at http://localhost:631/printers/HL2270DW

3.2.6.1   My setting is "Connection: usb:/dev/usb/lp0"
              This is the setting for USB printing ("usb:")
3.2.6.2   Select from Menu "Administration/Modify Printer" if you are not using USB printing. If you wanted to keep the USB printing option you should select from Menu "Administration/Add Printer"
3.2.6.2.1   Enter your Ubuntu user name and password if prompted
                The new page will be titled "Modify HL2270DW" assuming you choose the "Modify Printer" option above.
3.2.7   Select the entry "Brother HL-2270DW series (Brother HL-2270DW series)" from 
the section "Discovered Network Printers:"
3.2.8   There are multiple entries for "Brother HL-2270DW series (Brother HL-2270DW series)" and they do not have the same configurations. I randomly selected one entry and then Select "Continue" at the bottom of the page.
3.2.9   You will get a new page for editing the printers configuration, my configuration follows

3.2.9.1   Description: HL2270DW-wifi
3.2.9.1.1   added "-wifi" since you can also have USB printing and this requires adding a new printer           configuration
3.2.9.2   Location: Study
3.2.9.3   Connection: dnssd://Brother%20HL-2270DW%20series._pdl-datastream._tcp.local/
3.2.9.3.1   Bold indicates this is for wifi printing, very important to have this correct!!!

3.2.9.4   If the "pdl-datastream._tcp.local/" was wrong I hit the back button on my browser and tried another entry until I got the correct "Connection" configuration.

3.2.9.5   Select "Continue" at bottom of page
              You get a new page titled "Modify HL2270DW"


3.2.10   Under "Model" select "Current Driver - Brother HL2270DW for CUPS"
3.2.10.1 If the current driver (PPD file) for HL2270DW is not displayed (a problem with Ubuntu 13.10) then you need to tell CUPS where the driver file is located. At "Or Provide a PPD File:", select "Browse" button and navigate to file: /usr/share/cups/model/HL2270DW.ppd.
3.2.11   Select "Modify Printer"
                You get a new page titled "HL2270DW (Idle, Accepting Jobs, Shared)"

3.2.12   Print a Test Page
3.2.13   Select from menu "Maintenance/Print a Test Page"

Congratulations


References


Thanks to GSBoomer for this arcane information from this post.
These instructions are heavily copied from my previous post "Brother HL-2270DW printer driver install: Ubuntu 11.04".
Thanks to herrsaalfeld for PPD/driver file location and for "sudo killall cupsd" command when password fails in Ubuntu 13:10.


2012/05/17

House buying scam Ron and Beverly Grant 817-886-0939


I received a letter today in the mail that is a scam for buying your house. The note is on yellow paper and printed in red ink. The note says it is from Ron yet it looks like a girls handwriting. The note at first glance appears handwritten, however on closer inspection it is a very clever/good printout. Following is the whole note:

Hello, My name is Ron Grant. My wife Beverly and I would like to buy your house at: 936 Mountain Ter. Please call us at 817-886-0939.
Thanks, Ron

Google the name and you will see this is a nation wide scam. I have included some links below.
http://800notes.com/Phone.aspx/1-904-371-2431#p395723367429274848