summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlinhes/linhes-system/PKGBUILD19
-rw-r--r--linhes/linhes-system/lh_mtc.cron (renamed from linhes/linhes-system/myth_mtc.cron)41
-rwxr-xr-xlinhes/linhes-system/lh_mtc.py (renamed from linhes/linhes-system/myth_mtc.py)16
-rwxr-xr-xlinhes/linhes-system/lh_system_backup29
-rwxr-xr-xlinhes/linhes-system/lh_system_backup_job330
-rwxr-xr-xlinhes/linhes-system/lh_system_start.sh7
6 files changed, 400 insertions, 42 deletions
diff --git a/linhes/linhes-system/PKGBUILD b/linhes/linhes-system/PKGBUILD
index ab75da9..62bee0b 100755
--- a/linhes/linhes-system/PKGBUILD
+++ b/linhes/linhes-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=linhes-system
pkgver=9.0.0
-pkgrel=46
+pkgrel=47
arch=('x86_64')
#install=$pkgname.install
pkgdesc="Everything that makes LinHES a system"
@@ -11,14 +11,15 @@ depends=('cronie' 'dbus-python' 'dvb-firmware' 'expect' 'flatpak' 'firefox' 'gla
'intel-media-driver' 'libva-intel-driver' 'libva-vdpau-driver')
binfiles="add_storage.py balance_storage_groups.py empty_storage_groups.py remove_storage.py
checkXFSfrag.sh enableIRWake.sh idle.py lh_system_start.sh lh_notify-send
- lh_home_check.sh lh_myth_status.py jobqueue_helper.py gen_lib_xml.py
- diskspace.sh find_orphans.py optimize_mythdb.py myth_mtc.py
+ lh_home_check.sh lh_myth_status.py lh_system_backup lh_system_backup_job
+ jobqueue_helper.py gen_lib_xml.py
+ diskspace.sh find_orphans.py optimize_mythdb.py lh_mtc.py
misc_recent_recordings.pl misc_status_config.py misc_status_info.sh
misc_upcoming_recordings.pl misc_which_recorder.pl
create_media_dirs.sh be_check.py
myth2mkv myth2mp3 myth2videos udev_link.sh"
source=($binfiles
- 'myth_mtc.cron' 'paccache.cron' 'flatpak_update.cron' 'xfs_defrag.cron'
+ 'lh_mtc.cron' 'paccache.cron' 'flatpak_update.cron' 'xfs_defrag.cron'
'readme_is_xml' 'add_storage.readme' 'LinHES-release' 'lh_log_care.cron'
'79-cronie.hook' 'fstrim.hook' 'openssh.hook' 'plex_lib.conf' 'rsyslog.hook'
'10-monitor.conf' 'x11vnc.override.conf' 'lh_lighttpd.conf' 'lh_php.ini'
@@ -31,16 +32,18 @@ sha256sums=('525bfe29b63d3ec5a17a32fa29745e24070020490c3f5b6dd6b03250348fb324'
'c7a2b2de44645e3a905b39d7411e5b8b27b60bd2944533fd4655c3b175755da1'
'ae34515e144830f424d3bd3f6b1b446892d62beed20bca6f0fb19b0bbb779f27'
'5e6d128f879b0fe7c1a190cccd75d4e5d00afc161f3bc9e92ffa2d87242cc9df'
- '7667518308cbb2ff7fbc52e6e0ba918b11ee04e5e26cee85d98297df4929da41'
+ '7d4c5397326565b517799aef4e6301d12b672a5995e4de03cf6817f5de05855d'
'6d4fb0ed1a5ed961b3a3884dce093118e50c2981a9cd5837d20abc5a6d4fd8aa'
'87875d9e5f5ce18208f419698ce69b6bcbcd08955a57a4a13940e715af58b787'
'93d664f4a46fda05d0f754d19df40cbda120e325b80c07092345b14763993833'
+ '8d6d09cedc85e49712144699ccb905be6ef663e9ab0bc01abd434370ab12fede'
+ 'e5ffd470e43b4993b5212b128c2e92aa55d18538b130de671fcf56c0d0a5e9d4'
'91bdec992bb2c933e15625c181f2195c402060b879168ebf35944cb064c904b9'
'5cacfdd02833e5a3130d765573e772e6bd5030336ba86239c5e4db5ffa36fc69'
'ebdb3ee0212e0cc72526bb5e50a032573e1894acb7bf75617243b0b49aa1f8f2'
'4d006f0fe3b13e67de1b961d611e81911905a30d140849dfdb8e5c0dc4da2f7c'
'e371c6a289c68fe200d7da856c20a8c579efa23178f4d62235f7359d7f6e49a1'
- 'c9b52a5be54f920ca5fb16423977cb685c9b2db8b39fe9b1c743abf12228a700'
+ '048a978774c4f05a5a9482f0aab32e00d2c21217d6faf8c578ed6b26cb5de67d'
'd2d69b2bf6315bd37ff5f5b2f0cde8ab2fb89bae18f8796dc5208ffc1a9d743e'
'a3f8ba840853e4a189dd52520a6958f4030e1cc3391200a6aeef055fb469f0b4'
'1819085bd2c9106482c5f243b95fddf3dae69212330ab76cb493add5c26a45a4'
@@ -52,7 +55,7 @@ sha256sums=('525bfe29b63d3ec5a17a32fa29745e24070020490c3f5b6dd6b03250348fb324'
'a961cfdc6f02b12fb445777dd2c144fed96306ca2f430cc8853ae307c759c1ad'
'd8574104b75c6d41284488612ec5583c50a8dab438492fa42c47231add4cfc54'
'6bdbf593d3e1348d1a8f7c4c17cb2e893f7e18ae355daf978173e669cfe3be80'
- '9e97b4d68c9e8988daacadd40f1de9f0b5945d870eba596a2ceb5e0c023fa9c0'
+ 'b3f02ec3f8cedc98c74b3169049b7b6aa78bd79d558a8bc98d00e064b983965c'
'186203d3c0520bb3d611da99d33a7713e9c1563814285f1f101097234f214b2f'
'd8d36a501928d0cc505957d392291fad317b1e895ff99847d90643cf5f622a89'
'cdfc0c836b8194f631f4a9e022c232ff75a13ff1a161a1a011858578bea5f930'
@@ -126,7 +129,7 @@ package() {
#cron files
install -Dm755 $srcdir/paccache.cron $pkgdir/etc/cron.weekly/paccache
install -Dm755 $srcdir/xfs_defrag.cron $pkgdir/etc/cron.weekly/xfs_defrag
- install -Dm755 $srcdir/myth_mtc.cron $pkgdir/etc/cron.hourly/myth_mtc
+ install -Dm755 $srcdir/lh_mtc.cron $pkgdir/etc/cron.hourly/lh_mtc
install -Dm755 $srcdir/flatpak_update.cron $pkgdir/etc/cron.daily/flatpak_update
install -Dm755 $srcdir/lh_log_care.cron $pkgdir/etc/cron.daily/lh_log_care
diff --git a/linhes/linhes-system/myth_mtc.cron b/linhes/linhes-system/lh_mtc.cron
index 6d70058..b556d60 100644
--- a/linhes/linhes-system/myth_mtc.cron
+++ b/linhes/linhes-system/lh_mtc.cron
@@ -5,22 +5,22 @@ MYTH_RUN_STATUS=1
date=`date +%Y-%m-%d`
timestamp=`date +'%Y-%m-%d %H:%M'`
-hostname=`hostname`
-logFile="/var/log/${date}/${hostname}_myth_mtc.log"
-log="logger -t myth_mtc -p local6.info"
+hostname=`/usr/bin/hostnamectl hostname`
+logFile="/var/log/${date}/${hostname}_lh_mtc.log"
+log="logger -t lh_mtc -p local6.info"
if [ ! -f $logFile ]; then
touch $logFile
echo "" | $log
fi
-#check logfile for Finished and if not run myth_mtc.py
+#check logfile for Finished and if not run lh_mtc.py
if ! grep -q "Finished Maintenance" $logFile
then
if ! grep -q "Finished checking size of MythTV home" $logFile
then
- MYTHCONFDIR=/usr/share/mythtv unbuffer myth_mtc.py --check_home | $log
+ sudo -u mythtv bash -c "MYTHCONFDIR=/usr/share/mythtv unbuffer lh_mtc.py --check_home | $log"
if [ $? = 0 ]
then
echo "" | $log
@@ -32,12 +32,12 @@ then
if ! grep -q "Finished Optimize" $logFile
then
- if [ $SystemType = Frontend_only ]
+ if [ $SystemType = FrontendOnly ]
then
echo "Will not run Optimize on Frontend Only systems." | $log
echo "Finished Optimize" | $log
else
- MYTHCONFDIR=/usr/share/mythtv unbuffer myth_mtc.py --optimize | $log
+ sudo -u mythtv bash -c "MYTHCONFDIR=/usr/share/mythtv unbuffer lh_mtc.py --optimize | $log"
if [ $? = 0 ]
then
echo "" | $log
@@ -50,7 +50,7 @@ then
if ! grep -q "Finished Backup" $logFile && grep -q "Finished Optimize" $logFile
then
- MYTHCONFDIR=/usr/share/mythtv unbuffer myth_mtc.py --backup | $log
+ sudo -u mythtv bash -c "MYTHCONFDIR=/usr/share/mythtv unbuffer lh_mtc.py --backup | $log"
if [ $? = 0 ]
then
echo "" | $log
@@ -60,19 +60,20 @@ then
fi
fi
- if ! grep -q "Finished Update" $logFile
- then
- MYTHCONFDIR=/usr/share/mythtv unbuffer myth_mtc.py --update | $log
- if [ $? = 0 ]
- then
- echo "" | $log
- else
- echo "Time Exceeded" | $log
- exit
- fi
- fi
+# if ! grep -q "Finished Update" $logFile
+# then
+# sudo -u mythtv bash -c "MYTHCONFDIR=/usr/share/mythtv unbuffer lh_mtc.py --update | $log"
+# if [ $? = 0 ]
+# then
+# echo "" | $log
+# else
+# echo "Time Exceeded" | $log
+# exit
+# fi
+# fi
- if grep -q "Finished checking size of MythTV home" $logFile && grep -q "Finished Optimize" $logFile && grep -q "Finished Backup" $logFile && grep -q "Finished Update" $logFile
+# if grep -q "Finished checking size of MythTV home" $logFile && grep -q "Finished Optimize" $logFile && grep -q "Finished Backup" $logFile && grep -q "Finished Update" $logFile
+ if grep -q "Finished checking size of MythTV home" $logFile && grep -q "Finished Optimize" $logFile && grep -q "Finished Backup" $logFile
then
echo "Finished Maintenance" | $log
fi
diff --git a/linhes/linhes-system/myth_mtc.py b/linhes/linhes-system/lh_mtc.py
index 1a71aa9..f79314e 100755
--- a/linhes/linhes-system/myth_mtc.py
+++ b/linhes/linhes-system/lh_mtc.py
@@ -28,25 +28,23 @@ def getFreePercentForDir(dir):
def check_home():
#get the mythtv home dir
- sys.path.append('/usr/MythVantage/bin/')
- config_file = "mv_config"
- data_config = __import__(config_file, globals(), locals(), [])
+ MYTHHOME=subprocess.check_output("lh_home_check.sh").decode('utf-8').strip()
- freePcent = getFreePercentForDir(data_config.MYTHHOME)
+ freePcent = getFreePercentForDir(MYTHHOME)
print(" Home directory percent used: " + str(freePcent * 100) + "%")
if float(freePcent) > .9:
print(" Home directory is greater than 90% used. Clearing caches...")
- cmd = "/usr/bin/rm -rf " + data_config.MYTHHOME + "/.mythtv/{*cache,Cache-*,tmp/*,MythMusic/AlbumArt/*}"
+ cmd = "/usr/bin/rm -rf " + MYTHHOME + "/.mythtv/{*cache,Cache-*,tmp/*,MythMusic/AlbumArt/*}"
subprocess.call(["sh", "-c", cmd])
print(" Restarting mythfrontend...")
subprocess.call(["killall", "mythfrontend"])
- cmd = "/usr/bin/rm -rf " + data_config.MYTHHOME + "/.cache/*"
+ cmd = "/usr/bin/rm -rf " + MYTHHOME + "/.cache/*"
subprocess.call(["sh", "-c", cmd])
- cmd = "/usr/bin/rm -rf " + data_config.MYTHHOME + "/.plexht/userdata/Thumbnails/*"
+ cmd = "/usr/bin/rm -rf " + MYTHHOME + "/.plexht/userdata/Thumbnails/*"
subprocess.call(["sh", "-c", cmd])
- cmd = "/usr/bin/rm -rf " + data_config.MYTHHOME + "/.plexht/userdata/ThemeMusicCache/*"
+ cmd = "/usr/bin/rm -rf " + MYTHHOME + "/.plexht/userdata/ThemeMusicCache/*"
subprocess.call(["sh", "-c", cmd])
- freePcent = getFreePercentForDir(data_config.MYTHHOME)
+ freePcent = getFreePercentForDir(MYTHHOME)
print(" Home directory percent used: " + str(freePcent * 100) + "%")
else:
print(" Home directory is less than 90% used. Not clearing caches.")
diff --git a/linhes/linhes-system/lh_system_backup b/linhes/linhes-system/lh_system_backup
new file mode 100755
index 0000000..f970f4f
--- /dev/null
+++ b/linhes/linhes-system/lh_system_backup
@@ -0,0 +1,29 @@
+#!/bin/bash
+. /etc/systemconfig
+lh_notify-send "Starting Backup..."
+#alert user the database will not be backed up
+if [ $SystemType != MasterBackend -a $SystemType != Standalone ]
+then
+ lh_notify-send "This is not the Master backend.\n Skipping backup of database."
+fi
+
+if [ $SystemType = MasterBackend -o $SystemType = Standalone ]
+then
+ backend_control.sh stop 127.0.0.1
+fi
+
+#do the backup
+lh_system_backup_job 2>&1 > /var/run/backup.log
+rc=$?
+if [ $SystemType = MasterBackend -o $SystemType = Standalone ]
+then
+ backend_control.sh start 127.0.0.1
+fi
+
+if [ $rc = 0 ]
+then
+ complete_message="Backup completed successfully."
+else
+ complete_message="Backup failed."
+fi
+lh_notify-send "$complete_message"
diff --git a/linhes/linhes-system/lh_system_backup_job b/linhes/linhes-system/lh_system_backup_job
new file mode 100755
index 0000000..257bb87
--- /dev/null
+++ b/linhes/linhes-system/lh_system_backup_job
@@ -0,0 +1,330 @@
+#!/bin/bash
+#process that uses this system backup script
+# - lh_mtc.py
+
+MYTH_RUN_STATUS="1"
+. /etc/profile
+. /etc/systemconfig
+BACKUPDIR=/data/storage/disk0/backup/system_backups
+SECBACKUPLINK=/data/storage/disk1
+KeepBackups=14
+DATE=`date +%F_%H-%M`
+backup_status=0
+#
+
+MYTHSHUTDOWN="/usr/bin/mythshutdown"
+
+function lock_myth(){
+ $MYTHSHUTDOWN --lock
+}
+
+function unlock_myth(){
+ $MYTHSHUTDOWN --unlock
+}
+
+function backup_status_check(){
+ if [ $1 -ne 0 ]
+ then
+ backup_status=1
+ fi
+}
+
+
+function backup(){
+
+ echo
+ echo "Starting Backup"
+ mkdir -p $BACKUPDIR/$DATE
+
+ #backup database
+ if [ $SystemType = Master_backend -o $SystemType = Standalone ]
+ then
+ echo
+ echo "Backup mysql databases"
+ pacman -Q mysql 2>/dev/null
+ if [ $? = 0 ]
+ then
+ echo " mythconverg (mythtv database)"
+ mysqldump -x mythconverg > $BACKUPDIR/$DATE/mythconverg
+ backup_status_check $?
+
+ echo " ncid (caller id)"
+ mysqldump -x ncid > $BACKUPDIR/$DATE/ncid 2>/dev/null
+
+ #this is all the users
+ echo " users"
+ mysqldump -x mysql > $BACKUPDIR/$DATE/mysql_table
+
+ #this is everything
+ echo " All databases in one file"
+ mysqldump -x --all-databases > $BACKUPDIR/$DATE/all_databases
+ backup_status_check $?
+ fi
+ fi
+
+ echo "Backup saved settings"
+ if [ -e /usr/MythVantage/templates/settings ]
+ then
+ cp -rp /usr/MythVantage/templates/settings $BACKUPDIR/$DATE/settings
+ backup_status_check $?
+ fi
+
+ echo "Backup etc"
+ cp -rp /etc $BACKUPDIR/$DATE/etc
+ if [ -e /var/lib/oss ]
+ then
+ cp -rp /var/lib/oss $BACKUPDIR/$DATE/oss
+ backup_status_check $?
+ fi
+
+ echo "Backup func keys"
+ cp -rp /etc/pki $BACKUPDIR/$DATE/pki
+
+ echo "Backup Plex Media Server databases and preferences"
+ if [ -e /data/storage/disk0/media/plex/Plex\ Media\ Server/Plug-in\ Support ]
+ then
+ mkdir $BACKUPDIR/$DATE/plex
+ backup_status_check $?
+ fi
+ if [ -e /data/storage/disk0/media/plex/Plex\ Media\ Server/Plug-in\ Support/Databases ]
+ then
+ cp -rp /data/storage/disk0/media/plex/Plex\ Media\ Server/Plug-in\ Support/Databases $BACKUPDIR/$DATE/plex/Databases
+ backup_status_check $?
+ fi
+ if [ -e /data/storage/disk0/media/plex/Plex\ Media\ Server/Plug-in\ Support/Preferences ]
+ then
+ cp -rp /data/storage/disk0/media/plex/Plex\ Media\ Server/Plug-in\ Support/Preferences $BACKUPDIR/$DATE/plex/Preferences
+ backup_status_check $?
+ fi
+
+ #create default backup_exclude.txt
+ if [ ! -f $MYTHHOME/backup_config/backup_exclude.txt ]
+ then
+ mkdir -p $MYTHHOME/backup_config/
+ touch $MYTHHOME/backup_config/backup_exclude.txt
+ chmod 777 $MYTHHOME/backup_config/backup_exclude.txt
+ fi
+
+ for i in ".mythtv/cache" ".mythtv/themecache" ".mythtv/remotecache" ".mythtv/Cache-myth*" ".cache" "tmp" ".vnc/*log" ".vnc/*pid" ".plexht/userdata/Thumbnails" ".plexht/userdata/ThemeMusicCache" ".kodi/userdata/Thumbnails"
+ do
+ grep -qF "$i" $MYTHHOME/backup_config/backup_exclude.txt
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ echo "$i" >> $MYTHHOME/backup_config/backup_exclude.txt
+ fi
+ done
+
+ echo "Backup home dirs"
+ HOMEDIRS=""
+ tar -zcf $BACKUPDIR/$DATE/home_dir.tar.gz -X $MYTHHOME/backup_config/backup_exclude.txt $MYTHHOME $HOMEDIRS
+
+ if [ -f $MYTHHOME/backup_config/backup_include.txt ]
+ then
+ echo
+ echo "Backup items from $MYTHHOME/backup_config/backup_include.txt"
+ tar -zcf $BACKUPDIR/$DATE/other.tar.gz -T $MYTHHOME/backup_config/backup_include.txt
+ backup_status_check $?
+ fi
+
+ echo "Compress backup file"
+ cd $BACKUPDIR
+ tar -zcf $BACKUPDIR/backup.$DATE.tgz $DATE
+ backup_status_check $?
+ if [ -d $BACKUPDIR/$DATE ]
+ then
+ rm -rf $BACKUPDIR/$DATE
+ fi
+
+ if [ $backup_status -eq 0 ]
+ then
+ BACKUPPATH=$BACKUPDIR/backup.$DATE.tgz
+ else
+ echo "Backup had an error"
+ mkdir $BACKUPDIR/errored_backups
+ mv $BACKUPDIR/backup.$DATE.tgz $BACKUPDIR/errored_backups/backup.$DATE.tgz
+ BACKUPPATH=$BACKUPDIR/errored_backups/backup.$DATE.tgz
+ fi
+
+ 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
+ echo "Created backup file:"
+ echo " $BACKUPPATH"
+}
+
+function update_backup_status(){
+ echo
+ # Add Last backup status to menu item
+ #if description not in the backup xml file, add it
+ if [ $rc=0 ]
+ then
+ COMPLETE_MSG="Last backup completed `date '+%D %-I:%M %p'`"
+ else
+ COMPLETE_MSG="Last backup FAILED `date '+%D %-I:%M %p'`"
+ fi
+ echo "Updating menu with:"
+ echo " $COMPLETE_MSG"
+ xmlfile="/usr/share/mythtv/themes/defaultmenu/mythbackup.xml"
+
+ grep -q "<description>" $xmlfile >/dev/null
+ desc_check=$?
+
+ if [ $desc_check = 0 ]
+ then
+ sed -i "0,/<description\>.*\<description\>/s||\<description\>$COMPLETE_MSG<\/description|" $xmlfile
+ #sed -i "0,/\<description\>.*\<description\>/s//\<description\>$COMPLETE_MSG\<\/description/" $xmlfile
+ else
+ sed -i " /NONE/ i\ \<description\>$COMPLETE_MSG\<\/description\>" $xmlfile
+ fi
+}
+
+function remove_old_backups(){
+
+ #remove old backups
+ NumBackups=`ls $BACKUPDIR/backup*.tgz|wc -l`
+ if [[ $NumBackups -gt $KeepBackups ]]; then
+ numdel=$(($NumBackups-$KeepBackups))
+ rm -f `ls $BACKUPDIR/backup*.tgz -tr1|head -$numdel`
+ fi
+}
+
+
+function remote_backup(){
+ echo
+ echo "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
+ else #do local copy to SECBACKUPLINK
+ echo " Remote backup is not enabled, copying backup to another drive on this system."
+ SECBACKUPDISK=`readlink $SECBACKUPLINK`
+
+ if [ -z $SECBACKUPDISK ]
+ then
+ for dir in /data/storage/disk*
+ do
+ if [ $dir == /data/storage/disk0 ]
+ then
+ continue
+ fi
+ TESTDIR=`readlink $dir`
+ if [ -n $TESTDIR ]
+ then
+ SECBACKUPDISK=$TESTDIR
+ break
+ fi
+ done
+ fi
+
+ if [ -n "$SECBACKUPDISK" ]; then
+ SECBACKUP=$SECBACKUPDISK/backup
+ if [ `mountpoint -q -d $SECBACKUPDISK` ]; then
+ if [ ! -d "$SECBACKUP" ]; then
+ mkdir -p -m 775 $SECBACKUP
+ echo " Created $SECBACKUP"
+ chown mythtv:users $SECBACKUP
+ fi
+ echo " Copying system backups to $SECBACKUP"
+ rsync -au --delete $BACKUPDIR $SECBACKUP
+ else
+ echo " $SECBACKUPDISK isn't mounted."
+ fi
+ else
+ echo " Could not find another drive on this system."
+ fi
+ fi
+}
+
+function remote_transfer(){
+ transfer_file=${1}
+ echo $transfer_file
+ /usr/bin/func ${RemoteBackupDir} ping| grep -q "FAILED"
+ rc=$?
+ if [ $rc = 0 ]
+ then
+ #this is here to mark a 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
+ 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
+}
+
+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 will be 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
+}
+
+function remove_link(){
+ RETRYFILE="/etc/cron.hourly/lh_backup_retry.sh"
+ if [ ! -f $BACKUPDIR/remote_backup_failed.txt ]
+ then
+ rm -f $RETRYFILE
+ fi
+}
+
+
+#------------------------------------
+lock_myth
+if [ "x$1" = "x" ]
+then
+ backup
+ update_backup_status
+ #only remove old backups if there was no problems
+ if [ $backup_status -eq 0 ]
+ then
+ remove_old_backups
+ fi
+ 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
+unlock_myth
+echo $backup_status > /var/run/systembackup.rc
+exit $backup_status
diff --git a/linhes/linhes-system/lh_system_start.sh b/linhes/linhes-system/lh_system_start.sh
index 5e84bc6..eab8594 100755
--- a/linhes/linhes-system/lh_system_start.sh
+++ b/linhes/linhes-system/lh_system_start.sh
@@ -66,7 +66,7 @@ function install_lh_apps(){
#install programs that are not needed on the iso
#check network connection
netwait=0
- while ! nc -zw1 1.1.1.1 443; do
+ while [ ! nc -zw1 1.1.1.1 443 ]; do
[ $netwait -gt 12 ] && msg "Could not install apps. Check internet connection. Cancelling Setup." && exit 1
msg "Waiting for internet connectivity..."
((netwait++))
@@ -74,12 +74,8 @@ function install_lh_apps(){
done
msg "Installing apps."
konsole -e /bin/bash -i -c "sudo pacman -Syyy --noconfirm archlinux-keyring && sudo pacman -Syyy --noconfirm mythtv mythplugins-mytharchive mythplugins-mythmusic mythplugins-mythweb && flatpak install tv.plex.PlexHTPC --noninteractive --assumeyes && sudo flatpak override tv.plex.PlexHTPC --filesystem=/run/lirc/lircd"
- #sudo pacman -Syyy --noconfirm archlinux-keyring
- #sudo pacman -Syyy --noconfirm flatpak firefox glances mlocate mythtv mythplugins-mytharchive mythplugins-mythmusic mythplugins-mythweb ncdu x11vnc
- #sudo pacman -Syyy --noconfirm mythtv mythplugins-mytharchive mythplugins-mythmusic mythplugins-mythweb
status=$?
[ $status -eq 1 ] && msg "Could not install apps. Check internet connection. Cancelling Setup." && exit 1
- #flatpak install tv.plex.PlexHTPC --noninteractive --assumeyes
gen_lib_xml.py
}
@@ -122,6 +118,7 @@ function first_configure(){
# create media directory structure
sudo mkdir -p /data/storage/disk0
sudo create_media_dirs.sh /data/storage/disk0
+ sudo ln -s /data/storage/disk0/media/ /myth
# setup DB
sql_setup
# run mythtv-setup