diff options
| author | James Meyer <james.meyer@operamail.com> | 2011-12-30 19:03:20 (GMT) | 
|---|---|---|
| committer | James Meyer <james.meyer@operamail.com> | 2011-12-30 19:03:20 (GMT) | 
| commit | 68def16b69900b781eab3f36f27d94eaf42a360b (patch) | |
| tree | 55ae3b3f8a8611d73e1b2e4eb2bb12fe9c6d9fdd /abs/core/LinHES-system | |
| parent | f01f4a6a837ccbdc55107bb0738846b5a56f1462 (diff) | |
| download | linhes_pkgbuild-68def16b69900b781eab3f36f27d94eaf42a360b.zip linhes_pkgbuild-68def16b69900b781eab3f36f27d94eaf42a360b.tar.gz linhes_pkgbuild-68def16b69900b781eab3f36f27d94eaf42a360b.tar.bz2  | |
linhes-system: add new utils for backup/update/and restore
Diffstat (limited to 'abs/core/LinHES-system')
| -rw-r--r-- | abs/core/LinHES-system/fix_myth_mount.py | 51 | ||||
| -rw-r--r-- | abs/core/LinHES-system/fix_myth_mount.sh | 22 | ||||
| -rw-r--r-- | abs/core/LinHES-system/lh_system_all_host_update | 8 | ||||
| -rw-r--r-- | abs/core/LinHES-system/lh_system_backup_job | 64 | ||||
| -rw-r--r-- | abs/core/LinHES-system/lh_system_host_update | 56 | ||||
| -rw-r--r-- | abs/core/LinHES-system/lh_system_restore_job | 76 | 
6 files changed, 277 insertions, 0 deletions
diff --git a/abs/core/LinHES-system/fix_myth_mount.py b/abs/core/LinHES-system/fix_myth_mount.py new file mode 100644 index 0000000..9f3cc54 --- /dev/null +++ b/abs/core/LinHES-system/fix_myth_mount.py @@ -0,0 +1,51 @@ +#!/usr/bin/python2 +import os +import sys +cmd="cp -f /etc/fstab /etc/fstab.backup.pre_acl" +os.system(cmd) +f = open('/etc/fstab', 'r') +fstab=f.readlines() +f.close() +mp='/data/mnt/d1' + +def check_fstab_mount(): +    #first check if media/d1 is in list, if not add it. +    newfstab=[] +    mnt_in_fstab=False +    for line in fstab: +        split_line=line.split() +        try: +            if split_line[1] == mp : +                print "found mountpoint if fstab" +                mnt_in_fstab = True +                break +        except:  pass +    return mnt_in_fstab + +def add_mnt_to_fstab(): +    newfstab=[] +    for line in fstab: +        newfstab.append(line) +        split_line=line.split() +        try: +            if split_line[1] == "/myth": +               split_line[1] = mp +               new_line='\t'.join(split_line)+"\n" +               newfstab.append(new_line) +        except: +            pass + +    return newfstab + + + +if check_fstab_mount() == False: +    print "I need to add it" +    newfstab=add_mnt_to_fstab() +    f = open('/tmp/fstab', 'w') +    for i in newfstab: +        f.write(i) +        #f.write("\n") +    f.close() + + diff --git a/abs/core/LinHES-system/fix_myth_mount.sh b/abs/core/LinHES-system/fix_myth_mount.sh new file mode 100644 index 0000000..2ed9783 --- /dev/null +++ b/abs/core/LinHES-system/fix_myth_mount.sh @@ -0,0 +1,22 @@ +#!/bin/sh +function checkmount { +  mounted=1 +    for i in `cat /proc/mounts | cut -d' ' -f2`; do +       if [ "x$1" = "x$i" ]; then +          mounted=0 +          break +       fi + +    done +  return $mounted +} + +checkmount $1 +rc=$? + +if [ $rc == 0 ] +then +   echo "fs is mounted" +else +   echo "fs is not mounted" +fi
\ No newline at end of file diff --git a/abs/core/LinHES-system/lh_system_all_host_update b/abs/core/LinHES-system/lh_system_all_host_update new file mode 100644 index 0000000..98fe668 --- /dev/null +++ b/abs/core/LinHES-system/lh_system_all_host_update @@ -0,0 +1,8 @@ +#!/bin/bash +results=`cat /data/srv/xymon/server/etc/hosts.cfg|grep -v ^#|awk '{print $2}' ` +for i in $results +do		 +   echo "$i" +   echo "-------------------------------------------" +   sudo /usr/bin/func $i call pacman update_system $1		 +done diff --git a/abs/core/LinHES-system/lh_system_backup_job b/abs/core/LinHES-system/lh_system_backup_job new file mode 100644 index 0000000..3abd5f9 --- /dev/null +++ b/abs/core/LinHES-system/lh_system_backup_job @@ -0,0 +1,64 @@ +#!/bin/bash +#process that uses this system backup script +# - myth_mtc.py +# - supplemental web, process.py  backup +# +echo "#########################################################" +echo "Starting  backup	" +. /etc/profile +. /etc/systemconfig +BACKUPDIR=/myth/system_backups +DATE=`date +%F_%H-%M` +mkdir -p $BACKUPDIR/$DATE + +#backup db +pacman -Q mysql 2>/dev/null +if [ $? = 0 ] +then +	mysqldump mythconverg > $BACKUPDIR/$DATE/mythconverg +	mysqldump ncid > $BACKUPDIR/$DATE/ncid +fi + +#backup etc +cp -rp /etc  $BACKUPDIR/$DATE/etc +cp -rp /var/lib/oss $BACKUPDIR/$DATE/oss + +#backup func keys +cp -rp /data/srv/func $BACKUPDIR/$DATA/func + +#make_zip file +cd $BACKUPDIR +tar -zcvf $BACKUPDIR/backup.$DATE.tgz  $DATE + +if [ -d $BACKUPDIR/$DATE ] +then +	rm -rf $BACKUPDIR/$DATE +fi + +if [ -f /data/srv/hobbit/server/ext/hbnotes.py ] +then +	/data/srv/hobbit/server/ext/hbnotes.py +	chown nobody:nobody /data/srv/httpd/htdocs/hobbit/notes/* 2> /dev/null >/dev/null + + +fi + + +#Remote copy +if [ x$RemoteBackup = x1 ] +then +    localRemoteCheck=`echo $RemoteBackupDir | cut -d: -f1` +    if [  x$localRemoteCheck =  xdir ] +    then +        localRemotedir=`echo $RemoteBackupDir | cut -d: -f2` +        cmd="cp $BACKUPDIR/backup.$DATE.tgz  $localRemotedir" +        echo "copying$BACKUPDIR/backup.$DATE.tgz to  $localRemotedir  " +    else +	/usr/bin/func  ${RemoteBackupDir} copyfile  -f  $BACKUPDIR/backup.$DATE.tgz  --remotepath $BACKUPDIR/backup.$DATE.tgz +	 +        echo "copying$BACKUPDIR/backup.$DATE.tgz to  ${RemoteBackupDir}:/data/database_backup/" +    fi +    $cmd +fi + +echo "#########################################################" diff --git a/abs/core/LinHES-system/lh_system_host_update b/abs/core/LinHES-system/lh_system_host_update new file mode 100644 index 0000000..1a4d714 --- /dev/null +++ b/abs/core/LinHES-system/lh_system_host_update @@ -0,0 +1,56 @@ +#!/bin/bash +# Process that call this script +# func  update  +# supplemental web +echo "#####################################################" +echo "Starting update" +. /etc/profile + +if  [ x$1 = x ] +then +    . /etc/systemconfig +else +Hostupdateplan=$1 +fi + + +case $Hostupdateplan in +	"Myth_only") +		echo "Updating myth packages" +		postfix=`cat $INSTALL_DIR/usr/local/share/mythtv/.releasetype` +		for mythl in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo mythweb mythtv +		do +			mythlist="$mythlist $mythl$postfix" +		done + +		pacman -Sy +        	list=`pacman -Qu $pkg |grep Targets` +        	for pkg in LinHES-config LinHES-system mythinstall $mythlist +        	do +	            echo $list|grep -q  $pkg +            		if  [ $? = 0 ] +            		then +                		echo "Updating  $pkg" +                		pacman --noconfirm -S $pkg +            		else +                		echo  "$pkg is up to date" +                	fi +	        done +	;; +	"All") +		echo ""  +		echo "Updating ALL packages" +		pacman -Sy +		pacman --noconfirm -Sfu +	;; +	"None") +		echo "" +		echo "Updating NO packages" +		;; +    *)  echo "" +        echo "Unknown  $Hostupdateplan, skipping updates" +        ;; +esac + + +echo "##################################################################################" diff --git a/abs/core/LinHES-system/lh_system_restore_job b/abs/core/LinHES-system/lh_system_restore_job new file mode 100644 index 0000000..9c66e2a --- /dev/null +++ b/abs/core/LinHES-system/lh_system_restore_job @@ -0,0 +1,76 @@ +#!/bin/bash +#  This script is used to perform a quick restore of a database that was backed up via the nightly system backup +#  The restore only does the database it does NOT restore system files (even if they are in the backup file) +# +BACKUPDIR=/myth/system_backups +backupfile=$1 + +function usage(){ +    echo "------------------------------------------------------" +    echo "This program will restore the database from a system backup." + +    echo "Files are expected to be in the $BACKUPDIR" +    echo "usage:" +    echo "" +    echo "lh_system_restore_job \$filename  [yes]" +    echo "" +    echo "example: lh_system_restore_job backup.2011-12-22_15-34.tgz " +    echo "" +    echo "" + +    echo "If the script is passed a second argument, it will not cleanup the the restore dir." +    echo "------------------------------------------------------" + +    exit 1 +    } + + + +if [ x$backupfile = x ] +then +    usage +fi + +. /etc/profile + +RESTOREDIR=$BACKUPDIR/restore +DIR=`echo $backupfile |cut -d. -f2` +CSQL="create database mythconverg;" +DSQL="drop database mythconverg; " +MYSQL="mysql  -u mythtv -pmythtv" + + + +mkdir -p $RESTOREDIR +cp $BACKUPDIR/$backupfile $RESTOREDIR +cd $RESTOREDIR && tar -xf  $backupfile && cd $DIR + +if [ -f mythconverg ] +then +    #drop the db +    $MYSQL -e "$DSQL" +    #create the db +    $MYSQL  -e "$CSQL" +    #restore the database_backup +    echo "Restoring the database  $DIR" +    $MYSQL  mythconverg < mythconverg +    if [ $? = 0 ] +    then +        echo "Done" +    else +        echo "An error occured" +    fi + else +    echo "Couldn't file a file to restore" +fi + + +#cleanup +if [ x$2 = x ] +then +    echo "Cleaning up the restore dir" +    rm -rf $RESTOREDIR/$DIR +    rm -f $RESTOREDIR/$backupfile +else +    echo "Not doing a cleanup of $RESTOREDIR" +fi  | 
