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 SSH
e SCP
para 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 mybackupscript
por
mysqldump -uroot -p mydatabasename > mybackup.sql
Se você não aceita conexões SSH na porta 20, mude ssh me@mydomain.com
e 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 PATH
para que, para executá-lo, tudo o que você precisa fazer é
remotebackupandlocalrestore
Alternativamente, você pode executar o script absolutamente fazendo
/path/to/remotebackupandlocalrestore