diff options
-rwxr-xr-x | abs/core/LinHES-system/PKGBUILD | 8 | ||||
-rw-r--r-- | abs/core/LinHES-system/lh_system_backup_job | 161 |
2 files changed, 123 insertions, 46 deletions
diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD index 0ebf41a..61ea2f2 100755 --- a/abs/core/LinHES-system/PKGBUILD +++ b/abs/core/LinHES-system/PKGBUILD @@ -1,12 +1,12 @@ pkgname=LinHES-system pkgver=2 -pkgrel=127 +pkgrel=129 arch=('i686' 'x86_64') MVDIR=$startdir/pkg/usr/LH BINDIR=$startdir/pkg/usr/bin install=system.install pkgdesc="scripts and things related to having an automated system" -depends=(linhes-sounds xdotool tilda keylaunch python_aosd 'linhes-scripts>=7-24' 'udisks' 'LinHES-config>=2.3-59' 'sudo' 'python2-dbus' 'unclutter' 'wmctrl' 'archlinux-xdg-menu') +depends=(linhes-sounds xdotool tilda keylaunch python_aosd 'linhes-scripts>=7-24' 'udisks' 'LinHES-config>=2.3-59' 'sudo' 'python2-dbus' 'unclutter' 'wmctrl' 'archlinux-xdg-menu' 'ethtool') backup=(etc/modprobe.d/alsa-base) binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh LinHES-run @@ -94,11 +94,11 @@ md5sums=('d35912d6b6b267bc6616205fa4776833' '309638acf596ce3c790aa2bf5c7c9880' '962a3e9eaba2d1466251b7ab0956705d' '1758aed160de64abfafb28a3a8f3390e' - '5510042c80283522f480e95d6242495c' + '2200f08381370f6ae553e13a9f376377' 'ceec78815ed01af733cdbca14cb0942b' '1be1d3dfc83f828eede93055713882ae' '47e093e8cfe4b5b96602358e1f540832' - 'fd7dbbf960080619ef18d6843f6374d8' + 'a85c19902f2af90931e05c839c63b62d' 'b9b0a8370f46f0b5e144a66897e8eefb' '6519d209e151cdc39ae7e1091d189c3e' '8f474e019d5fcb775497aca355d61b0b' diff --git a/abs/core/LinHES-system/lh_system_backup_job b/abs/core/LinHES-system/lh_system_backup_job index 99838be..d2c80ab 100644 --- a/abs/core/LinHES-system/lh_system_backup_job +++ b/abs/core/LinHES-system/lh_system_backup_job @@ -2,65 +2,142 @@ #process that uses this system backup script # - myth_mtc.py # - supplemental web, process.py backup -# -echo "#########################################################" -echo "Starting backup " MYTH_RUN_STATUS="1" . /etc/profile . /etc/systemconfig BACKUPDIR=/data/storage/disk0/backup/system_backups DELETE_DAYS=21 DATE=`date +%F_%H-%M` -mkdir -p $BACKUPDIR/$DATE +# +function backup(){ + echo "#########################################################" + echo "Starting backup " + 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 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 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 + #backup func keys + cp -rp /etc/pki $BACKUPDIR/$DATA/pki -#make_zip file -cd $BACKUPDIR -tar -zcvf $BACKUPDIR/backup.$DATE.tgz $DATE -if [ -d $BACKUPDIR/$DATE ] -then - rm -rf $BACKUPDIR/$DATE -fi + #make_zip file + cd $BACKUPDIR + tar -zcvf $BACKUPDIR/backup.$DATE.tgz $DATE -if [ -f /home/xymon/server/ext/hbnotes.py ] -then - /home/xymon/server/ext/hbnotes.py - chown nobody:nobody /data/srv/httpd/htdocs/hobbit/notes/* 2> /dev/null >/dev/null -fi + if [ -d $BACKUPDIR/$DATE ] + then + rm -rf $BACKUPDIR/$DATE + fi -#remove old backups -find $BACKUPDIR/backup*.tgz -type f -mtime +$DELETE_DAYS -delete + if [ -f /home/xymon/server/ext/hbnotes.py ] + then + /home/xymon/server/ext/hbnotes.py + chown nobody:nobody /data/srv/httpd/htdocs/hobbit/notes/* 2> /dev/null >/dev/null + fi + echo "#########################################################" +} -#Remote copy -if [ x$RemoteBackup = x1 ] -then - localRemoteCheck=`echo $RemoteBackupDir | cut -d: -f1` - if [ x$localRemoteCheck = xdir ] +function remove_old_backups(){ + #remove old backups + find $BACKUPDIR/backup*.tgz -type f -mtime +$DELETE_DAYS -delete +} + + +function remote_backup(){ + #Remote copy + if [ x$RemoteBackup = x1 ] + then + localRemoteCheck=`echo $RemoteBackupDir | cut -d: -f1` + if [ x$localRemoteCheck = xdir ] + then + localRemotedir=`echo $RemoteBackupDir | cut -d: -f2` + echo "copying $BACKUPDIR/backup.$DATE.tgz to $localRemotedir " + cp $BACKUPDIR/backup.$DATE.tgz $localRemotedir + else + /usr/bin/func ${RemoteBackupDir} ping| grep -q "FAILED" + rc=$? + if [ $rc = 0 ] + then + #this is here to mark failed copy of the backup. + #There is a cron.hourly job that will attempt to retransfer the file + echo "Remote backup failed to ${RemoteBackupDir}" + echo backup.$DATE.tgz >> $BACKUPDIR/remote_backup_failed.txt + else + echo "copying $BACKUPDIR/backup.$DATE.tgz to ${RemoteBackupDir}:$BACKUPDIR/MBE_$DATE.tgz" + /usr/bin/func ${RemoteBackupDir} copyfile -f $BACKUPDIR/backup.$DATE.tgz --remotepath $BACKUPDIR/MBE_$DATE.tgz + fi + fi + fi +} + +function remote_transfer(){ + transfer_file=${1} + echo $transfer_file + /usr/bin/func ${RemoteBackupDir} ping| grep -q "FAILED" + rc=$? + if [ $rc = 0 ] then - localRemotedir=`echo $RemoteBackupDir | cut -d: -f2` - cmd="cp $BACKUPDIR/backup.$DATE.tgz $localRemotedir" - echo "copying$BACKUPDIR/backup.$DATE.tgz to $localRemotedir " + #this is here to mark failed copy of the backup. + #There is a cron.hourly job that will attempt to retransfer the file + echo "Remote backup failed to ${RemoteBackupDir}" + echo $transfer_file >> $BACKUPDIR/remote_backup_failed.txt else - /usr/bin/func ${RemoteBackupDir} copyfile -f $BACKUPDIR/backup.$DATE.tgz --remotepath $BACKUPDIR/backup.$DATE.tgz + echo "copying $BACKUPDIR/$transfer_file to ${RemoteBackupDir}:$BACKUPDIR/MBE_$transfer_file" + /usr/bin/func ${RemoteBackupDir} copyfile -f $BACKUPDIR/$transfer_file --remotepath $BACKUPDIR/MBE_$transfer_file + fi +} - echo "copying$BACKUPDIR/backup.$DATE.tgz to ${RemoteBackupDir}:/data/database_backup/" +function add_link(){ + if [ -f $BACKUPDIR/remote_backup_failed.txt ] + then + RETRYFILE="/etc/cron.hourly/lh_backup_retry.sh" + echo "#!/bin/bash" > $RETRYFILE + echo "#This file was autogenerated and removed by lh_system_backup_job" >> $RETRYFILE + echo "MYTH_RUN_STATUS=1">> $RETRYFILE + echo ". /etc/profile">> $RETRYFILE + echo "lh_system_backup_job retry">> $RETRYFILE + chmod 755 $RETRYFILE fi - $cmd +} + +function remove_link(){ + RETRYFILE="/etc/cron.hourly/lh_backup_retry.sh" + if [ ! -f $BACKUPDIR/remote_backup_failed.txt ] + then + rm -f $RETRYFILE + fi +} +#------------------------------------ +if [ "x$1" = "x" ] +then + remove_old_backups + backup + remote_backup + add_link +else + #this is where we attempt to transfer again as part of the cronjob + if [ -f $BACKUPDIR/remote_backup_failed.txt ] + then + mv -f $BACKUPDIR/remote_backup_failed.txt /tmp + while read line + do + echo $line + remote_transfer $line + done < /tmp/remote_backup_failed.txt + rm -f /tmp/remote_backup_failed.txt + fi + remove_link fi -echo "#########################################################" + + |