Skip to content

Instantly share code, notes, and snippets.

@vanjos
Last active January 2, 2023 00:15
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
  • Save vanjos/6053606 to your computer and use it in GitHub Desktop.
Save vanjos/6053606 to your computer and use it in GitHub Desktop.
Easy way to do a mysqldump and restore using netcat (this is NOT encrypted)
#####
# You'll be needing two machines, the target machine and source one (makes sense, right)?
#####
# On the target machine
nc -l 55555 | gzip -d -c | mysql <database name> -u<user> -p<password> [ | <decrypt> ]
#####
# On the source machine
mysqldump -u<user> -p<password> <database name> | gzip | nc <ip of target server> 55555 [ | <encrypt> ]
#####
# Adding Encryption...
# Encrypting with openssl
/usr/bin/openssl enc -aes-256-cbc -pass pass:<some_password> -e
# DECRYPTING THE FILE
# /usr/bin/openssl enc -aes-256-cbc -pass pass:<some_password> -d
@akhiljalagam
Copy link

How does encryption work here on the fly...?

@akhiljalagam
Copy link

With stream cipher encryption enabled...

#!/bin/bash

#####
# On the target machine
nc -l 55555 | openssl enc -d -aes-128-cfb -pass pass:<password> | gzip -d -c | mysql <database name> -u<user> -p<password>

#####
# On the source machine
mysqldump -u<user> -p<password> <database name> | gzip | openssl enc -aes-128-cfb -pass pass:<password> | nc <ip of target server> 55555

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment