Archive for October, 2010

CIFS it is…


This is the final, fully tested and functional remote backup script for linux… Finally 🙂

#!/bin/bash
# A straght forward system backup script
#
LOGBASE=/var/log/backup/log
BACKUP_ROOT_DIR=”a/facts77 a/can”                       ## Backup dirs; do not prefix /
NOW=$(date +”%a”)                                       ## Get todays day
TSTAMP=$(date +”%l:%M:%S”)                              ## Get time stamp H:M:S
TDATE=$(date -I)                                        ## Get todays date
TAPE=”/oracle55vm_backup”                               ## Backup device name
TAR_ARGS=””                                             ## Exclude file
EXCLUDE_CONF=/root/.backup.exclude.conf                 ## Named file for file exclusion
LOGFILE=$LOGBASE/$TDATE.backup.log                      ## Backup Log file
FILELIST=$LOGBASE/$TDATE.backup.file-listing.log        ## Backup Log file list
UNAME=”xxx”
PWORD=”xxxXXXX”
SYSTEM=”`uname -n|cut -c 1-10`”
# Path to binaries
TAR=/bin/tar
MKDIR=/bin/mkdir
#
full_backup(){
local old=$(pwd)i
cd /
# Mount the samba destination
mount.cifs //bufvmfacts01/G/oracle55vm_backup $TAPE -o username=$UNAME,password=$PWORD
# Search the directory for files older than 7 days and delete them
find /oracle55vm_backup -type f -mtime +7|xargs -r rm -f
# Run the backup
tar -zcvf $TAPE/$SYSTEM.bak.`date -I`.tgz $BACKUP_ROOT_DIR # gzipping these
cd $old
}
# Make sure all dirs exits
verify_backup_dirs(){
local s=0
for d in $BACKUP_ROOT_DIR
do
if [ ! -d /$d ];
then
echo “Error : /$d directory does not exit!”
s=1
fi
done
# if not; just die
[ $s -eq 1 ] && exit 1
}
# Make some kind of status report
report_backup_info(){
touch $LOGBASE/$TDATE.backup.file-listing.log
cd $TAPE
echo ” ”
echo ”                        **** Backup Report ****”
echo ”                        ****   $TDATE  ****”
echo ” ——————————————————————————— ”
echo ” ################################################################################# ”
echo ” _________________________________________________________________________________ ”
echo ” ”
echo ” ”
echo ”  Backup start time: $TSTAMP”
echo ”  Operating System: `cat /etc/redhat-release`”
echo ” ”
echo ”  Size of the complete archive: `tar -ztvf $SYSTEM.bak.$TDATE.tgz|wc -c` Bytes”
echo ”  Size of the logged archive:   `cat $FILELIST|wc -c` Bytes”
echo ” ”
echo ”  File count of the completed archive: `tar -ztvf $SYSTEM.bak.$TDATE.tgz|wc -l` Files”
echo ”  File count of the logged archive:    `cat $FILELIST|wc -l` Files”
echo ” ”
echo ”  Remote CIFS Directory Listing:”
ls -lh
echo ” ”
echo ”  Disk Summary:”
df -h
echo ” ”
echo ” _________________________________________________________________________________ ”
echo ”                                                                                   ”
echo ” ################################################################################# ”
echo ” ——————————————————————————— ”
echo ” ”
cd –
} > $LOGFILE 2>&1
#
#
# Clean Up
clean_up(){
cd /
umount $TAPE # unmount the cifs mount
# Email the report
mail -s “System Backup $SYSTEM” gconklin@proserve-solutions.com < $LOGFILE
}
#
#
#### MAIN ####
#
# Make sure log dir exits
[ ! -d $LOGBASE ] && $MKDIR -p $LOGBASE
#
# Verify dirs
verify_backup_dirs
#
#
# Okay let us start backup procedure
# If it is Monday-Friday make a full backup;
# Weekend no backups
full_backup > $FILELIST 2>&1
#
#
# Make the simple report
report_backup_info
#
# Call the Clean UP function
clean_up

Advertisements

, , , , , , , , , , ,

Leave a comment

Pretty Linux?


So what do you think? Is it pretty? LOL 🙂

I guess I should have added how to actually do this… Here is the quick-n-dirty way:

Add the following to the bottom of your .bashrc file for whatever user:

#
alias ls=’ls –color’
LS_COLORS=’di=1;96:fi=0:ln=31:pi=5:so=5:bd=5:cd=5:or=31:mi=0:ex=35:*.rpm=94:*.tar=92:*.sh=32:*.log=91:*.gz=93:*.tgz=93′
export LS_COLOR

Here is a quick legend for the color associations:

di = directory
fi = file
ln = symbolic link
pi = fifo file
so = socket file
bd = block (buffered) special file
cd = character (unbuffered) special file
or = symbolic link pointing to a non-existent file (orphan)
mi = non-existent file pointed to by a symbolic link (visible when you type ls -l)
ex = file which is executable (ie. has ‘x’ set in permissions)

0   = default colour
1   = bold
4   = underlined
5   = flashing text
7   = reverse field
31  = red
32  = green
33  = orange
34  = blue
35  = purple
36  = cyan
37  = grey
40  = black background
41  = red background
42  = green background
43  = orange background
44  = blue background
45  = purple background
46  = cyan background
47  = grey background
90  = dark grey
91  = light red
92  = light green
93  = yellow
94  = light blue
95  = light purple
96  = turquoise
100 = dark grey background
101 = light red background
102 = light green background
103 = yellow background
104 = light blue background
105 = light purple background
106 = turquoise background

Also, you can combine more than one option per directive like this… *.log=91;1;42 which would give you this:

, , , ,

Leave a comment

Backup Takanga… RHEL v5.5… Dancing with CIFS


OK, so a few days ago I did one of these to backup to an internal tape device… This time it’s going on a remote Windows share through CIFS… It is mostly the same as the tape version… I’m sure you’ll notice the subtleties… I am not much of a report writer so please excuse the ugliness of the info, but this really is primarily to facilitate a backup not report on it…  Anyway what I have come up with also uses a nifty find command to manage the remote Windows share in terms of number of backup files… I suggest doing something similar as you will eventually overrun the remote store if you don’t…   In any event.. the script below is fully tested and functional… as always 🙂

#!/bin/bash
# A straght forward system backup script
#
LOGBASE=/var/log/backup/log
BACKUP_ROOT_DIR=”a/facts77 a/can”                       ## Backup dirs; do not prefix /
NOW=$(date +”%a”)                                       ## Get todays day
TSTAMP=$(date +”%l:%M:%S”)                              ## Get time stamp H:M:S
TDATE=$(date -I)                                        ## Get todays date
TAPE=”/oracle55vm_backup”                               ## Backup device name
TAR_ARGS=””                                             ## Exclude file
EXCLUDE_CONF=/root/.backup.exclude.conf                 ## Named file for file exclusion
LOGFILE=$LOGBASE/$TDATE.backup.log                      ## Backup Log file
FILELIST=$LOGBASE/$TDATE.backup.file-listing.log        ## Backup Log file list
UNAME=”xxx”
PWORD=”xxxXXXX”
SYSTEM=`uname -n|cut -c 1-10`
# Path to binaries
TAR=/bin/tar
MKDIR=/bin/mkdir
#
full_backup(){
local old=$(pwd)i
cd /
# Mount the samba destination
mount.cifs //bufvmfacts01/G/oracle55vm_backup $TAPE -o username=$UNAME,password=$PWORD
# Search the directory for files older than 7 days and delete them
find /oracle55vm_backup -type f -mtime +7|xargs -r rm -f
# Run the backup
tar -zcvf $TAPE/$SYSTEM_backup.`date -I`.tgz $BACKUP_ROOT_DIR # gzipping these
cd $old
}
# Make sure all dirs exits
verify_backup_dirs(){
local s=0
for d in $BACKUP_ROOT_DIR
do
if [ ! -d /$d ];
then
echo “Error : /$d directory does not exit!”
s=1
fi
done
# if not; just die
[ $s -eq 1 ] && exit 1
}
# Make some kind of status report
report_backup_info(){
touch $LOGBASE/$TDATE.backup.file-listing.log
cd $TAPE
echo ”                                                                                   ”
echo ”                        **** Backup Report ****                                    ”
echo ”                        **** $TDATE ****                                           ”
echo ” ——————————————————————————— ”
echo ” ################################################################################# ”
echo ” ——————————————————————————— ”
echo “|                                                                                 |”
echo ”  Backup start time: $TSTAMP                                                                ”
echo ”  Operating System: `cat /etc/redhat-release`                                               ”
echo ”  Size of the complete archive: `tar -ztvf $SYSTEM.$TDATE.tgz|wc -c` Bytes                  ”
echo ”  Size of the logged archive:   `cat $FILELIST|wc -c` Bytes                                 ”
echo ”  File count of the completed archive: `tar -ztvf $SYSTEM.$TDATE.tgz|wc -l` Files           ”
echo ”  File count of the logged archive:    `cat $FILELIST|wc -l` Files                          ”
echo ”  Remote CIFS Directory Listing:                                                            ”
echo ”  ls -l                                                                                     ”
echo ”  Disk Summary:                                                                             ”
echo ”  `df -h`                                                                                   ”
echo “|                                                                                 |”
echo ” ——————————————————————————— ”
echo ” ################################################################################# ”
echo ” ——————————————————————————— ”
echo ”                                                                                   ”
cd –
} > $LOGFILE 2>&1
#
#
# Clean Up
clean_up(){
cd /
umount $TAPE # unmount the cifs mount
}
#
#
#### MAIN ####
#
# Make sure log dir exits
[ ! -d $LOGBASE ] && $MKDIR -p $LOGBASE
#
# Verify dirs
verify_backup_dirs
#
#
# Okay let us start backup procedure
# If it is Monday-Friday make a full backup;
# Weekend no backups
full_backup > $FILELIST 2>&1
#
#
# Make the simple report
report_backup_info
#
# Call the Clean UP function
clean_up

, , , , , , , , , ,

Leave a comment

The Origin of the Conklin Surname


Conklin

There are several mysteries about this unusual surname recorded in the forms of Conklin, Concklin, and Conkling. The New Dictionary of American Surnames claims without providing any proof, that it derives from the Dutch ‘Konkelen’, and translates as either a descendant of a chieftain or a conspirator, somewhat opposing viewpoints. We have not been able to satisfy ourselves that the name origin is Dutch at all, certainly no recordings as Konkelen or Conckeleyne or Concklin have been found in Holland. A rare recording as ‘Konkelenberg’would seem to be the nearest, this apparently translates as ‘one who lives by deep water at the side of the hill’, quite logical for Holland and North Germany. But to add confusion all the early recordings are in New England and all seem very British. There is no trace of any Dutch or European Christian names. We have investigated the records for the original counties of Norfolk and Suffolk, the areas from which many New England settlers came, and hence the same county names in the USA. A surname spelt Conking or Conling was recorded there, with one Steven Conking being married at South Walsham, Norfolk, in 1575. We believe that this ‘Conking’ may be the origin of the American ‘Conklin(g)’. Early recordings include Abigail Conklin, the grand-daughter of Benjamin Conckelyne (so much for spelling), christened at East Hampton, Suffolk County, New York, on June 26th 1701, and Mary Conklin, who married Marshall Pierce at Almeda, Oakland, California, on July 13th 1863. The first recorded spelling of the family name is shown to be that of Benjamin Conckelyne, which was dated June 1st 1668, married Hannah Mulford at East Hampton, New York, during the reign of King Charles 11, of England and New England, 1660 – 1685. Surnames became necessary when governments introduced personal taxation. In England this was known as Poll Tax. Throughout the centuries, surnames in every country have continued to “develop” often leading to astonishing variants of the original spelling.

,

Leave a comment