summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-system/bin
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/LinHES-system/bin')
-rwxr-xr-xabs/core/LinHES-system/bin/mythbackup42
-rwxr-xr-xabs/core/LinHES-system/bin/mythrestore45
2 files changed, 87 insertions, 0 deletions
diff --git a/abs/core/LinHES-system/bin/mythbackup b/abs/core/LinHES-system/bin/mythbackup
index d0d028d..3b4edd4 100755
--- a/abs/core/LinHES-system/bin/mythbackup
+++ b/abs/core/LinHES-system/bin/mythbackup
@@ -5,8 +5,32 @@
echo 1>&2 "Can not load common settings!"
exit 1
}
+
+. /etc/osd_cat.cfg || {
+ color=yellow
+ outline=2
+ outlinecolour=black
+ shadow=0
+ shadowcolour=black
+ font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
#----------------------------------------------------------------------------
+# Function to display status onscreen
+osd()
+# Arg_1 = display text Arg_2 = delay time Arg_3 = line num
+{
+ TEXT=$1
+ killall -9 osd_cat
+ if [ $3 -gt 1 ]; then
+ for ((i=2; i <= $3 ; i++))
+ do
+ TEXT="\n"$TEXT
+ done
+ fi
+ printf "$TEXT" | osd_cat --lines=6 --pos=middle --align=center --delay=$2 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+}
+
# Prevent mythshutdown from shutting down the system in the middle...
lock_myth
@@ -14,12 +38,15 @@ lock_myth
play_sound init.wav
# Keep a chain of recent backups,
+export DISPLAY=:0.0
+osd "Rolling over old backups..." 0 1
echo "Starting rollover of old backups, this may take a while..."
[ -f "$BACKUP_SQL" ] && shrink $BACKUP_SQL
[ -f "$BACKUP_TAR" ] && shrink $BACKUP_TAR
backup_roller .19 .18 .17 .16 .15 .14 .13 .12 .11 .10 .9 .8 .7 .6 .5 .4 .3 .2 .1 ''
echo "Rollover completed."
+osd "Checking the database..." 0 2
# Start with the database backup, first we make sure it's healthy, and
# then we can dump it.
# Doing this while the backend is active would be BAD.
@@ -31,10 +58,12 @@ cd $DATABASE_DIR
$MYISAMCHK -f *.MYI
start_mysqld
+osd "Backing up database..." 0 3
# Dumps the $DATABASE database
$MYSQLDUMP -v -c -u root $DATABASE > $BACKUP_SQL
shrink $BACKUP_SQL
+osd "Backing up files..." 0 4
# Now to backup the other files, no fooling around, grab everything in the
# list because you never know what you'll want, and we can always get clever
# about what to restore later...
@@ -49,19 +78,32 @@ shrink $BACKUP_TAR
$CHOWN root:root $BACKUP_TAR* $BACKUP_SQL*
$CHMOD go-rwx $BACKUP_TAR* $BACKUP_SQL*
+osd "Testing backup..." 0 5
echo "Sanity checking your backup..."
play_sound testing.wav
# Play a sound to let you know the outcome.
if check_files_and_tables $BACKUP_LIST ; then
+ osd "Backup completed successfully." 5 6
echo "Backup passes all checks."
+ COMPLETE_MSG="Last backup completed on `date '+%D @ %-I:%M %p'`"
play_sound complete.wav
STATUS=0
else
+ osd "Backup FAILED." 5 6
echo "The backup is bad or already out of date!"
+ COMPLETE_MSG="Last backup FAILED on `date '+%D @ %-I:%M %p'`"
play_sound fail.wav
STATUS=1
fi
+# Add Last backup status to menu item
+if grep "<description>" /usr/share/mythtv/themes/defaultmenu/mythbackup.xml >/dev/null 2>&1
+then
+ sed -i "s_\<description\>.*\<description\>_description\>$COMPLETE_MSG\<\/description_" /usr/share/mythtv/themes/defaultmenu/mythbackup.xml
+else
+ sed -i.orig " /NONE/ i\ \<description\>$COMPLETE_MSG\<\/description\>" /usr/share/mythtv/themes/defaultmenu/mythbackup.xml
+fi
+
# Now we can restart the backend.
start_mythbackend
diff --git a/abs/core/LinHES-system/bin/mythrestore b/abs/core/LinHES-system/bin/mythrestore
index 7fce371..447b0b8 100755
--- a/abs/core/LinHES-system/bin/mythrestore
+++ b/abs/core/LinHES-system/bin/mythrestore
@@ -5,8 +5,32 @@
echo 1>&2 "Can not load common settings!"
exit 1
}
+
+. /etc/osd_cat.cfg || {
+ color=yellow
+ outline=2
+ outlinecolour=black
+ shadow=0
+ shadowcolour=black
+ font="-adobe-helvetica-bold-*-*-*-34-*-*-*-*-*-*-*"
+}
#----------------------------------------------------------------------------
+# Function to display status onscreen
+osd()
+# Arg_1 = display text Arg_2 = delay time Arg_3 = line num
+{
+ TEXT=$1
+ killall -9 osd_cat
+ if [ $3 -gt 1 ]; then
+ for ((i=2; i <= $3 ; i++))
+ do
+ TEXT="\n"$TEXT
+ done
+ fi
+ printf "$TEXT" | osd_cat --lines=6 --pos=middle --align=center --delay=$2 --color=$color --outline=$outline --outlinecolour=$outlinecolour --shadow=$shadow --shadowcolour=$shadowcolour --font=$font &
+}
+
do_file_updates() { # A function because we need to do this in two places
echo "Doing any needed file updates..."
[ -n "$UPDATE_FILES" -a -f "$UPDATE_FILES" -a -x "$UPDATE_FILES" ] &&
@@ -39,6 +63,7 @@ lock_myth
# Play a sound to let you know I'm starting.
play_sound restore.wav
+export DISPLAY=:0.0
# Doing this while the backend is active could be BAD.
stop_mythbackend
@@ -46,6 +71,7 @@ stop_mythbackend
# If the standard backup file exists we try to restore the files based
# on our restore list.
if compression=$(compression_type "$BACKUP_TAR") ; then
+ osd "Restoring files..." 0 1
echo "Starting the restore of files..."
cd /
expand -c $BACKUP_TAR$compression |
@@ -59,8 +85,11 @@ if compression=$(compression_type "$BACKUP_SQL") ; then
echo "Starting the DB restore, this can take a while..."
echo "Clearing out the existing skeleton..."
#mysql_stdin < $DROP_SQL
+ osd "Recreating database..." 0 2
echo "Recreating the db..."
+ sleep 1
$MYSQLADMIN -u root create $DATABASE
+ osd "Restoring database..." 0 3
echo "Restoring the data (long)..."
expand -c $BACKUP_SQL$compression | mysql_stdin
echo "Doing any needed db updates..."
@@ -69,23 +98,39 @@ if compression=$(compression_type "$BACKUP_SQL") ; then
echo "Completed the DB restore."
fi
+osd "Testing restore..." 0 4
echo "Sanity checking your restore..."
play_sound vr.wav
# Play a sound to let you know the outcome.
if check_files_and_tables $RESTORE_LIST ; then
+ osd "Restore completed successfully." 5 5
echo "Restore passes all checks."
+ COMPLETE_MSG="Last restore completed on `date '+%D @ %-I:%M %p'`"
play_sound restored.wav
STATUS=0
else
+ osd "Restore FAILED." 5 5
echo "The restore failed or was already modified!"
+ COMPLETE_MSG="Last restore FAILED on `date '+%D @ %-I:%M %p'`"
play_sound rf.wav
STATUS=1
fi
+# Add Last restore status to menu item
+if grep "<description>" /usr/share/mythtv/themes/defaultmenu/mythrestore.xml >/dev/null 2>&1
+then
+ sed -i "s_\<description\>.*\<description\>_description\>$COMPLETE_MSG\<\/description_" /usr/share/mythtv/themes/defaultmenu/mythrestore.xml
+else
+ sed -i.orig " /NONE/ i\ \<description\>$COMPLETE_MSG\<\/description\>" /usr/share/mythtv/themes/defaultmenu/mythrestore.xml
+fi
+
# Make any updates _after_ we verify the backup...
do_db_updates
do_file_updates
+#post restore fixup for sshd
+/usr/MythVantage/bin/systemconfig.py -m user
+
# Now it's more or less safe to restart the backend.
start_mythbackend