haven notify!
This commit is contained in:
		
							
								
								
									
										35
									
								
								backup.sh
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								backup.sh
									
									
									
									
									
								
							| @@ -4,12 +4,24 @@ | ||||
| # Variables | ||||
| SERVER_FILE="https://git.ivanch.me/ivanch/server-scripts/raw/branch/main/backup.sh" | ||||
| SERVER_OK=1 | ||||
| HOSTNAME=$(cat /etc/hostname) | ||||
|  | ||||
| # Check if the server file exists | ||||
| curl -s --head $SERVER_FILE | head -n 1 | grep -E "HTTP/[12] [23].." > /dev/null | ||||
|  | ||||
| if [ $? -ne 0 ]; then | ||||
| NOTIFY_URL="http://notify.haven" | ||||
|  | ||||
| # Function to send notification | ||||
| send_notify() { | ||||
|     local title="$1" | ||||
|     local message="$2" | ||||
|     curl -s -X POST "$NOTIFY_URL" \ | ||||
|         -H "Content-Type: application/json" \ | ||||
|         -d "{\"title\": \"$title\", \"message\": \"$message\"}" | ||||
| } | ||||
|     echo "Error: $SERVER_FILE not found." >&2 | ||||
|     send_notify "[Docker Backup][$HOSTNAME] Error" "❌ <span style='color:red'>Server file not found:</span> $SERVER_FILE" | ||||
|     SERVER_OK=0 | ||||
| fi | ||||
|  | ||||
| @@ -48,19 +60,34 @@ REMOTE_DIR="/export/Backup/Docker/$(cat /etc/hostname)" | ||||
| # Create a compressed backup file | ||||
| zip -r $BACKUP_FILE $SOURCE_DIR | ||||
|  | ||||
| # Create a compressed backup file | ||||
| if ! zip -r $BACKUP_FILE $SOURCE_DIR; then | ||||
|     send_notify "Backup Error" "❌ <span style='color:red'>Failed to create backup archive for:</span> $SOURCE_DIR" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| # Check if remote path exists | ||||
| ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_DIR" | ||||
| if ! ssh $REMOTE_USER@$REMOTE_HOST "mkdir -p $REMOTE_DIR"; then | ||||
|     send_notify "[Docker Backup][$HOSTNAME] Error" "❌ <span style='color:red'>Failed to create remote directory:</span> $REMOTE_DIR on $REMOTE_HOST" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| # Transfer the backup file to the remote server | ||||
| scp $BACKUP_FILE $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR | ||||
| if ! scp $BACKUP_FILE $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR; then | ||||
|     send_notify "[Docker Backup][$HOSTNAME] Error" "❌ <span style='color:red'>Failed to transfer backup file to remote server:</span> $REMOTE_HOST:$REMOTE_DIR" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| # Remove the backup file | ||||
| rm $BACKUP_FILE | ||||
|  | ||||
| # Erase last 7 days backups from remote server | ||||
| ssh $REMOTE_USER@$REMOTE_HOST "find $REMOTE_DIR -type f -name 'docker_backup_*' -mtime +7 -exec rm {} \;" | ||||
| if ! ssh $REMOTE_USER@$REMOTE_HOST "find $REMOTE_DIR -type f -name 'docker_backup_*' -mtime +7 -exec rm {} \;"; then | ||||
|     send_notify "[Docker Backup][$HOSTNAME] Warning" "⚠️ <span style='color:orange'>Failed to clean old backups on remote server:</span> $REMOTE_HOST:$REMOTE_DIR" | ||||
| fi | ||||
|  | ||||
| # Exit | ||||
| # Success notification | ||||
| send_notify "[Docker Backup][$HOSTNAME] Success" "✅ <span style='color:green'>Backup completed successfully for:</span> $SOURCE_DIR to $REMOTE_HOST:$REMOTE_DIR" | ||||
| echo "Backup completed successfully" | ||||
| exit 0 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user