Execute um backup remoto e, em seguida, uma restauração local usando este pequeno script de shell

Então você tem um servidor remoto e uma máquina de desenvolvimento (obviamente, como você testa seu novo código). Seu servidor remoto tem muita entrada do usuário, portanto, para testar seu código em relação aos dados atuais, você escreve um script para fazer backup do servidor de dados. O único problema é que você precisa constantemente SSHe SCPpara obter seus dados. Não seria ótimo se você pudesse fazer tudo isso com um comando?

# remotebackupandlocalrestore

echo
'######## Download and Back Up Bachtrack Database ########'

# Connect to the server and run a few functions
# Running commands on remote server from local machine http://goo.gl/7VhjSp

ssh me@mydomain
.com << EOF

# Remove remote sql files from previous backups

rm
-v mybackup.sql

# Run the backup script

mybackupscript


exit
EOF


echo
'######## Attempting to remove existing backups on the local machine ########'

# Search and remove any sql files from previous backups

rm
-v mybackup.sql

# Download the backup from the server, putting it in the current directory

scp me@mydomain
.com:mybackup.sql .

# Restore the database

echo
'######## Enter MySQL Password For My DataBase ########'
mysql
-uroot -p mydatabasename < mybackup.sql

Se você não tiver um script de backup, substitua mybackupscriptpor

mysqldump -uroot -p mydatabasename > mybackup.sql

Se você não aceita conexões SSH na porta 20, mude ssh me@mydomain.come scp me@mydomain.com:mybackup.sql .com

ssh -p1234 me@mydomain.com
scp
-P1234 me@mydomain.com:mybackup.sql .

onde 1234 é a porta que você aceita conexões SSH no seu servidor remoto

Adicione o script ao seu PATHpara que, para executá-lo, tudo o que você precisa fazer é

remotebackupandlocalrestore

Alternativamente, você pode executar o script absolutamente fazendo

/path/to/remotebackupandlocalrestore