brianjking / homeassistant-config

Configuration for @brianjking Home Assistant
https://home-assistant.io
83 stars 8 forks source link

ha-mgmt.sh #7

Closed brianjking closed 7 years ago

brianjking commented 7 years ago

https://github.com/geekofweek/homeassistant/blob/master/tools/ha-mgmt.sh

#!/bin/bash

#################################################################
## Home Assistant Managment Tool
#################################################################

##########################################################
## Variables
##########################################################

hauser="USER_ACCOUNT"
habin="/usr/local/bin/hass"
haconfigdir="/home/USER/.homeassistant"
hahost="HOSTNAME/IP"
localuser="USER_ACCOUNT"
localhost="HOSTNAME/IP"
localpath="PATH_TO_LOCAL_HA_CONFIGS"

##########################################################
## Execute
##########################################################

answer=1
while [ "$answer" = 1 ]
do

 clear
 echo "This Script Will Modify Home Assistant"
 echo "Proceed with Caution!"
 echo ""
 echo "What would you like to do?"
 echo " "
 echo "1) Deploy Home Assistant Configs"
 echo "2) Restart Home Assistant - (sudo Required)"
 echo "3) Stop Home Assistant - (sudo Required)"
 echo "4) Start Home Assistant - (sudo Required)"
 echo "5) Upgrade Home Assistant - (sudo Required)"
 echo "6) Check Database Size - (sudo Required)"
 echo "7) Validate Home Assistant Config"
 echo "8) Backup Home Assistant"
 echo "9) Exit"
 echo " "
 read action

 if [ "$action" != "1" -a "$action" != "2" -a "$action" != "3" -a "$action" != "4" -a "$action" != "5" -a "$action" != "6" -a "$action" != "7" -a "$action" != "8" -a "$action" != "9"  ];then
        echo ":-("
        echo "Error!"
        echo "Invalid Option Stupid"
    exit
 fi

 if [ "$action" == "1" ];then
   clear
   echo "Backing Up Home Assistant..."
   echo "Creating Tar File..."
   echo " "
   ssh -t $hauser@$hahost "mkdir /home/$hauser/temp; cd $haconfigdir; tar -czf /home/$hauser/temp/ha-backup-`date +"%m-%d-%Y-%H-%M"`.tar.gz *"
   echo " "
   echo "Moving Backup to Local Host"
   echo " "
   ssh -t $hauser@$hahost "scp /home/$hauser/temp/*.tar.gz $localuser@$localhost:$localpath/Backups"
   echo " "
   echo "Deploying Home Assistant Configs..."
   echo " "
   rsync -au --exclude=".*" --exclude ".*/" $localpath/Config/ $hauser@$hahost:/$haconfigdir
   echo " "
   echo "Validating Home Assistant Configs..."
   echo " "
   ssh -t $hauser@$hahost "$habin --script check_config"
   echo " "
   echo "Home Assistant Config Validation Complete"
   echo " "
   echo "Cleaning Up..."
   echo " "
   ssh -t $hauser@$hahost "rm -rf /home/$hauser/temp;"
   echo " "
   echo "Home Assistant Config Deployment Complete"
 fi

 if [ "$action" == "2" ];then
   clear
   echo "Restarting Home Assistant..."
   echo " "
   ssh -t $hauser@$hahost "sudo systemctl restart home-assistant@ha"
   echo " "
   echo "Home Assistant Restart Complete"
   echo " "
 fi

 if [ "$action" == "3" ];then
   clear
   echo "Stopping Home Assistant..."
   echo " "
   ssh -t $hauser@$hahost "sudo systemctl stop home-assistant@ha"
   echo " "
   echo "Home Assistant Stop Complete"
   echo " "
 fi

 if [ "$action" == "4" ];then
   clear
   echo "Starting Home Assistant..."
   echo " "
   ssh -t $hauser@$hahost "sudo systemctl start home-assistant@ha"
   echo " "
   echo "Home Assistant Start Complete"
   echo " "
 fi

 if [ "$action" == "5" ];then
   clear
   echo "Upgrading Home Assistant..."
   echo " "
   ssh -t $hauser@$hahost "sudo pip3 install --upgrade homeassistant"
   echo " "
   echo "Upgrade Complete"
   echo " "
 fi

 if [ "$action" == "6" ];then
   clear
   echo "Checkign Size of Home Assistant Databae..."
   echo " "
   ssh -t $hauser@$hahost "sudo du -sh /var/lib/mysql | cut -c -5"
   echo " "
   echo "Home Assistant Size Check Complete"
   echo " "
 fi

 if [ "$action" == "7" ];then
   clear
   echo "Validating Home Assistant Configs..."
   echo " "
   ssh -t $hauser@$hahost "$habin --script check_config"
   echo " "
   echo "Home Assistant Config Validation Complete"
   echo " "
 fi

 if [ "$action" == "8" ];then
   clear
   echo "Backing Up Home Assistant..."
   echo "Creating Tar File..."
   echo " "
   ssh -t $hauser@$hahost "mkdir /home/$hauser/temp; cd $haconfigdir; tar -czf /home/$hauser/temp/ha-backup-`date +"%m-%d-%Y-%H-%M"`.tar.gz *"
   echo " "
   echo "Moving Backup to Local Host"
   echo " "
   ssh -t $hauser@$hahost "scp /home/$hauser/temp/*.tar.gz $localuser@$localhost:$localpath/Backups"
   echo " "
   echo "Cleaning Up..."
   echo " "
   ssh -t $hauser@$hahost "rm -rf /home/$hauser/temp;"
   echo " "
   echo "Backup Complete"
   echo " "
 fi

 if [ "$action" == "9" ];then
   clear
   echo " "
   echo ":-("
   echo "Exiting"
   echo " "
   exit
 fi

echo " "
echo "Do You Want to Perform Another Task?"
echo " "
echo "1) Yes"
echo "2) No"
echo " "
read answer

if [ "$answer" = 1 ]
then "run script again"
fi

done

clear
echo " "
echo ":-("
echo "Exiting"
echo " "