Thursday, September 26, 2013

Adding RHEL6 installation DVD as yum repository

In building a RHEL6 VM (VMware Workstation), I wanted to define the install DVD ISO as a yum repository.


  • Mount the ISO through workstation as a DVD
  • Verify your path to the disk.  Easiest way... try right-clicking on the DVD desktop icon and select "Open in Terminal".  Use pwd to see the path.
  • Create the file /etc/yum.repos.d/dvd.repo
      [RHEL6-DVD-Server] 
      mediaid=xxxxxxxxxx.xxxxxx
      name=RHEL6 DVD Server
      baseurl=file:///media/RHEL_6.0\ x86_64\ Disc\ 1/Server
      enabled=1
      gpgcheck=1

  • Replace xxxxxxxxxx.xxxxxx with number in /path/to/DVD/.discinfo
      # cat /media/RHEL_6.0\ x86_64\ Disc\ 1/.discinfo
      1285193176.460470
      Red Hat Enterprise Linux 6.0
      x86_64
      1
  • rpm --import /path/to/DVD/RPM-GPG-KEY-redhat-release
      rpm --import /media/RHEL_6.0\ x86_64\ Disc\ 1/RPM-GPG-KEY-redhat-release

At this point, the yum repository should be visible and ready to use.  Try the following commands to confirm:
  • yum repolist
  • yum grouplist

Wednesday, September 25, 2013

Building a new RHEL6 VM using kickstart

There are main things I need here:

  1. A new VM -  Pretty easy, just use workstation and create a new VM without installing the OS.  
  2. The RHEL6 install disk - Mount the RHEL6 install disk ISO in the new VM.  
  3. The kickstart file - this is the tricky part.  Two things are critical here... a) the kickstart cfg file needs to be accessible to the new VM, and b) the kickstart cfg file needs to define where to get the install bit. 
To address the first issue (a), the simplest way to tackle this is to create a kickstart cfg file and make it available locally on the network via http.  I did this by bringing up a second VM and simply using a local httpd and copying the ks.cfg into the htdocs directory.

To address the second issue (b), the kickstart file needs to point the installer to the repo (or DVD) with the RHEL6 install bits.  As mentioned above in point 2, the disk was already made available through the virtual DVD (it could also be made available through the httpd that is being used for the ks.cfg file).  But just because the ISO is available doesn't mean that kickstart knows to use it.  So, if the following line is part of the ks.cfg file, kickstart will look to the local booted source as the DVD.

    #repo --name="Red Hat Enterprise Linux"  --baseurl=file:///mnt/source --cost=100

You are now ready to start the kickstart process.

  • Boot the new VM (off of the DVD ISO - use F2 to set the boot order)
  • On the screen where you are given a choice of where to boot from or where to install from, accept the first option "Install or upgrade an existing system" and hit TAB to edit the options
  • Add the following to the end of the existing line (vmlinuz initrd=initrd.img is already there):
    • vmlinuz initrd=initrd.img ks=http://<httpd-ip-addr>/ks.cfg
  • Hit enter to continue.
  • Accept whatever else the wizard offers you
    • Use All Space or Replace Existing Linux

Saturday, September 21, 2013

Avoid emacs split window at startup

If the variable inhibit-startup-screen is non-nil, Emacs does not display the startup screen.

Set the setting in your .emacs file. 

(setq inhibit-startup-screen t)

Saturday, August 10, 2013

Remote restart of a windows machine

ssh <user>@<host>

# restart with a force
shutdown -r -f  0

# possibly -t 0 instead of just 0

# show all and Windows process
ps -aW 

# kill the winlogon process ???
/bin/kill -f <pid>

Thursday, August 8, 2013

mv numerous files at once



Or...

   for file in * ; do mv $file `echo $file | sed -e 's/AAA-\(.*\)_\(.*\).txt/AAA-\2-\1.txt/'`; done 

(for help understanding... http://www.daemonforums.org/showthread.php?t=2565)

Friday, August 2, 2013

Securing FTP (ftpes) using filezilla (client & server)

Using standard FTP is generally speaking a really bad idea from a security perspective.  The issue, among other things, is that the userid and password are sent over the network in clear text.  This means anyone sniffing the network now has complete access to your account.

To solve this, use either sftp or ftps.  Both use SSL to help secure the connection.  There are arguments for either sftp or ftps, but I will describe setting up ftps because it is rather simple and easy to install/configure.

This setup uses both the filezilla server and the filezilla client.  Part 1 describe configuring the ftpd (the server or daemon).  Part 2 describes how to set up the client.

Part 1: the server

Configure the server for SSL support:
  1. Download and install the filezilla server.  Use google to find the download site.
    1. You will probably want to set this up to "Install as a service, start with Windows"
  2. Bring up the Filezilla Server, and open Edit > Setting
  3. Under General settings, choose a non-default port (adds security): 2121
  4. Under General settings > Welcome message, alter the welcome message as you desire.  This is the message that is displayed to the incoming client requests.
  5. Under Passive mode settings:
    • Select "Use custom port range" and enter a range (for example 54054 - 54084)
    • Select "Use the following IP" and enter your hostname 
      • This should be your external hostname assuming you are using DDNS
      • You then need to configure port forwarding for the port you previously specified [2121] and the port range to this host's local IP address
  6. Under SSL/TLS settings, select "Enable FTP over SSL/TLS support (FTPS) and click "Generate new certificate..."
    1. In the dialog box, enter "US" for the country code
    2. Click Browse next to Save key and certificate to this file".  Browse to "C:\Program Files (x86)\FileZilla Server" and click Save.  Click "Gernerate certificate".
    3.  Fill in whatever other fields you wish
    4.  and click "Generate certificate"
    5. Back on the SSL/TLS settings screen, select both "Allow explicit FTP over TLS" and "Disallow plain unencrypted FTP"
  7. Click OK
  8. Restart the server
Configure the filewall.  If you have a filewall running on the server machine, you will need to create the appropriate rules to allow your ports in.  Those steps will depend on the specific firewall software being used.

Assuming the Windows firewall on Windows 7, here are the steps I followed:

  1. Start -> Windows Firewall with Advanced Security
  2. Inbound Rules
  3. New Rule...
  4. Select Port, click Next
  5. Select Specific local ports" and enter "2121, 54054-54084"  (matching the ports for the server above).  Click Next
  6. Select "Allow the connection", click Next
  7. Select all options for "When does this rule apply" and click Next
  8. Provide a name (for example ftpes), click Finish


Create your user account (at least one account):

  1. Edit > Settings > Users
  2. Click Add to create the user
  3. Enter a username and click OK
  4. Select the Password checkbox and enter a password
  5. Check "Force SSL for user login"
  6. Click Shared folders on the left
  7. Click Add to create the home directory and browse to the location you want to assign as the users home directory.  Click OK
    • Add any aliases to point at other disks or directories as needed
  8. Select the user permission (leave the default settings for read-only access or select all for read/write access)
  9. Click OK


Part 2: the client

Install the filezilla client
  1. Download and install the filezilla client.  Use google to find the download site.
  2. Run the install and accept all the defaults
Connect from the client to the server over SSL
  1. Start the filezilla client
  2. Enter ftpes::/<hostname or ipaddress> into the Host field
  3. Enter the username and passwords
  4. Enter the port you defined in the server in the port field
  5. Press enter

Wednesday, July 31, 2013

Checking what memory your system has

Use the web site www.crucial.com.  Click on the memory tab and run their memory tool.  This shows the number of slots and what memory they have in them.

Tuesday, May 28, 2013

Installing cygwin - which packages I choose

Every time I install cygwin, I struggle to remember which packages I select.  So here is that start of a list (which will get updated over time):


  • emacs
  • ssh
  • ssl
  • xdmcp
  • wget
  • bash
  • ncurses
  • inetutils
  • rsync
  • curl

Cygwin - setting up sshd as service

The following article goes through the process of setting up cygwin's sshd as a service:


How To Get SSH Command-Line Access to Windows 7 Using Cygwin
http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/
The short version:

  • Install cygwin - include ssh
  • Run terminal (as administrator)
  • run ssh-host-config and go through questions
  • Start service (either reboot or "net start sshd")
To uninstall the service, use the rollowing command:


cygrunsrv -R sshd
-------------------

Some additional notes for setting up on XP:
http://mugurel.sumanariu.ro/linux/steps-to-setting-up-cygwin-and-the-sshd-service-for-windows-xp/ 
Setting up client access to use keys instead of passwords:
http://www.teachmejoomla.net/code/misc/authentication-without-password-with-ssh-and-rsync.html 

iPhone - Google calendar syncing

I keep forgetting the link for configuring which google calendars to sync with the iPhone.  Also, the process has changed in the last yer or two.  

Here is a description:

    http://www.digitaltrends.com/mobile/sync-multiple-google-calendars-on-iphone-or-ipad/

Some of the content from the link above:
Here’s how to get all of your Google calendars working on your iPhone  or iPad:

  1. First, lets make sure your Calendar is properly synced, and the process is the same on both devices.
  2. Go to Settings, then open Mail/Contacts/Calendars.
  3. Next, select Add Account and Gmail.
  4. If however, you have already added your Gmail account, then instead of Add Account, choose Gmail from the account list. From here, toggle the Calendar switch to On.
  5. Otherwise, add your Google account information and a description of the calendar, and ensure that the Calendar option is switched on. Syncing will begin when you next open the Calendar app on your iPhone or iPad.

Next you must choose which calendars to sync:

  1. To do this, you need to visit the following Google website: www.google.com/calendar/iphoneselect
  2. Provided you’re signed into your Google account, on this page you’ll see a list of all your calendars, with a check box against them.
  3. Tick the boxes of the calendars you want to sync with the iPhone and iPad, then click save.

Once again, open the Calendars app and wait for it to sync. That’s it, all your calendars should be ready and waiting for you.

Sunday, May 26, 2013

Underwater photoshop macro

Tired of your underwater pictures looking terrible... all blue and washed out.  Well, even those cruddy pictures taken with that simple point and shoot camera (in an underwater housing) can be made to look pretty good!

Photoshot can adjust the colors automatically for underwater and make the colors look better.  I find the results to be simply amazing!  That is not to say that it makes bad pictures into good pictures.  It means that decent pictures with horrible coloring can be turned into decent pictures with decent coloring.

File name: Underwater_flat.atn (File available here)

Installing a Photoshop macro:

  • open photoshop
  • ensure actions palet is visible
    • Windows > Actions (will make action open up)
    •  there will be a little PLAY button (right arrow) in the palet dock
  • open the actions palet
  •  top right corner is a pulldown menu... Load actions
    •  browse to .atn file
    •  load .atn in (underwater)


Run the Maro:

  • File > Automate > batch
    • set : underwater
    • actions colorcorrect_red
    • Source: folder... CHOOSE FOLDER
      • select suppress File open options dialog 
      • select suppress Color Profile warnings
    • Desintation: folder... CHOOSE FOLDER
      • File Naming: Document Name + _corrected + extention
    •  OK


Gmail - creating your own specific address

Want to send something to your gmail account and make it specific to a vendor?  Do the following... give them the address:

    <your-address>+<specific-marker>@gmail.com

For example:

    pete+starbucks@gmail.com

The email will be delivered to your regular gmail account and the to address will display the whole address (including the marker).

Wednesday, May 22, 2013

Windows 7 Activation Error (0x8007232B)


If you get the error 0x8007232B when you try to activate Windows 7, then you need to run these commands: 
slmgr.vbs -ipk [your product key]

slmgr.vbs -ato

Friday, May 17, 2013

Setting up a windows service... run anything as a service

There is a freeware solution to setting things up as a service that seems to work better (in more cases) than traditional approaches.

    http://www.serviceex.com/


ServiceEx is a freeware Windows application that allows a normal program to run as a Windows service. Currently it is command line only. A version with a GUI is forthcoming. In the meantime, configuration options are specified via an .ini file that must be created prior to running ServiceEx.

ServiceEx differs from Microsoft's srvany in that it monitors the program and relaunches it whenever it shuts down for any reason. If you do not wish to have this behavior, you can turn it off. A link to download it is provided below.

Sample .ini file:

[ServiceEx] 
ServiceExeFullPath = "C:\Program Files\calibre2\calibre-server.exe"  

; program arguments to be sent to executable 
options =-p 8081 --with-library "c:\calibre library" 

; can program interact with desktop [true | false] (default: true) 
desktop = false

; start type (valid values: Auto Manual Disabled) (default: auto) 
Start=Auto 

; start the service upon installation [true | false] (default: no)  
StartNow=false 

Thursday, May 16, 2013

Symlinks on Windows

Looks like Windows (7 at least) supports symlinks... finally!!  Yay.


    C:\>mklink
    Creates a symbolic link.

    MKLINK [[/D] | [/H] | [/J]] Link Target

            /D      Creates a directory symbolic link.  Default is a file
                    symbolic link.
            /H      Creates a hard link instead of a symbolic link.
            /J      Creates a Directory Junction.
            Link    specifies the new symbolic link name.
            Target  specifies the path (relative or absolute) that the new link
                    refers to.

Example


    C:\>mklink /D my-link h:\usr\htdocs
    symbolic link created for my-link <<===>> h:\usr\htdocs

    C:\>






Tuesday, May 14, 2013

Find with grep


Need to search a directory tree for files containing a string?  Easy enough with a single file... just use "grep".  Easy enough with all the files in a directory... again, just use grep.


But, if you need to search a whole tree structure... use find, with xargs and grep:

    find . -name *.sh | xargs grep while

This search all files with a .sh extension starting in the current directory for the keyword while

To delete everything in all .svn directories:

    find . -name .svn -print0 | xargs -0 rm -rf

Reinitializing partition tables

Reinitializing partition tables

Had an interesting problem... trying to install Windows 7 on an old XP machine that had RAID turned on.  Tried to disable the BIOS level RAID, and do a new install.

The Windows 7 installation failed because a couple of reasons.  At first it could not see the disks.  After fiddling with the BIOS settings, the installer saw 2 out of 3 disks, but could not install to them.  It complained that the version of NTFS was unsupported.  I suspected that the drives had left over stuff from the RAID configuration.

Recommendation from a friend was to nuke the partition table and start from scratch.  Did this by booting off of a Fedora Live DVD, bringing up a terminal window and using dd to overwrite the start of the disks:

    dd if=/dev/zero of=/dev/sda bs=63k count=100
    dd if=/dev/zero of=/dev/sdb bs=63k count=100
    dd if=/dev/zero of=/dev/sdc bs=63k count=100

Success!