Update the deploy script with backup feature.
This commit is contained in:
parent
abd2d24e6c
commit
e342cb18b1
|
@ -6,21 +6,55 @@ username='ie-entwicklung'
|
|||
root_password='Salimax4x25'
|
||||
set -e
|
||||
|
||||
# Define directories
|
||||
DEST_DIR="/home/$username/salimax/SaliMax" # Path to the specific file
|
||||
BACKUP_DIR="/home/$username/salimax/salimax_backup/$(date +'%Y%m%d_%H%M%S')" # Backup folder with timestamp
|
||||
MAX_BACKUPS=10 # Limit to 10 backups
|
||||
|
||||
echo -e "\n============================ Build ============================\n"
|
||||
|
||||
# Build the project
|
||||
dotnet publish \
|
||||
./SaliMax.csproj \
|
||||
-p:PublishTrimmed=false \
|
||||
-c Release \
|
||||
-r linux-x64
|
||||
|
||||
echo -e "\n============================ Backup Old SaliMax File ============================\n"
|
||||
|
||||
# SSH into the remote machine and create the backup directory
|
||||
ssh $username@$salimax_ip "mkdir -p $BACKUP_DIR"
|
||||
|
||||
# Move the 'SaliMax' file to the backup folder on the remote machine
|
||||
ssh $username@$salimax_ip "rsync -av --exclude='$BACKUP_DIR/*' --exclude='salimax_backup/*' $DEST_DIR $BACKUP_DIR/"
|
||||
|
||||
echo -e "\n============================ Cleanup Old Backups ============================\n"
|
||||
# Cleanup old backups if the total number exceeds the maximum allowed
|
||||
|
||||
# List all backups and remove the oldest if the number exceeds MAX_BACKUPS
|
||||
BACKUP_COUNT=$(ssh $username@$salimax_ip "ls -1 /home/$username/salimax/salimax_backup | wc -l")
|
||||
|
||||
if [ $BACKUP_COUNT -gt $MAX_BACKUPS ]; then
|
||||
# Find and delete the oldest backup
|
||||
OLD_BACKUP=$(ssh $username@$salimax_ip "ls -1 /home/$username/salimax/salimax_backup | head -n 1")
|
||||
echo "Backup limit reached. Deleting old backup: $OLD_BACKUP"
|
||||
ssh $username@$salimax_ip "rm -rf /home/$username//salimax/salimax_backup/$OLD_BACKUP"
|
||||
else
|
||||
echo "Backup limit not reached. Current number of backups: $BACKUP_COUNT"
|
||||
fi
|
||||
|
||||
echo -e "\n============================ Deploy ============================\n"
|
||||
|
||||
# Deploy new files to the remote destination
|
||||
rsync -v \
|
||||
--exclude '*.pdb' \
|
||||
./bin/Release/$dotnet_version/linux-x64/publish/* \
|
||||
$username@"$salimax_ip":~/salimax
|
||||
$username@"$salimax_ip":~/salimax
|
||||
|
||||
echo -e "\n============================ Execute ============================\n"
|
||||
echo -e "\nDeployment complete!\n"
|
||||
|
||||
sshpass -p "$root_password" ssh -o StrictHostKeyChecking=no -t "$username"@"$salimax_ip" "echo '$root_password' | sudo -S sh -c 'cd salimax && ./restart'" 2>/dev/null
|
||||
|
||||
|
||||
#echo -e "\n============================ Execute ============================\n"
|
||||
|
||||
#sshpass -p "$root_password" ssh -o StrictHostKeyChecking=no -t "$username"@"$salimax_ip" "echo '$root_password' | sudo -S sh -c 'cd salimax && ./restart'" 2>/dev/null
|
||||
|
|
|
@ -223,8 +223,6 @@ internal static class Program
|
|||
Watchdog.NotifyAlive();
|
||||
|
||||
var record = ReadStatus();
|
||||
|
||||
/******************************************** For Battery Debug *************************************/
|
||||
|
||||
var currentSalimaxState = GetSalimaxStateAlarm(record);
|
||||
|
||||
|
@ -572,7 +570,7 @@ internal static class Program
|
|||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine(" Different ActiveUpperVoltage between inverters ");
|
||||
Console.WriteLine(" Different ActiveUpperVoltage between inverters "); // this should be reported to salimax Alarm
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue