Est-il possible de vider une base de données d'un hôte distant via une connexion SSH et d'avoir le fichier de sauvegarde sur mon ordinateur local.
Si oui, comment cela peut-il être réalisé?
Je suppose que ce sera une combinaison de la sortie de tuyauterie du ssh au vidage ou vice versa, mais je ne peux pas le comprendre.
Cela déchargerait, compresserait et diffuserait sur ssh dans votre fichier local
ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz
À partir de la solution @ MichelFeldheim, j'utiliserais:
$ ssh user@Host "mysqldump -u user -p database | gzip -c" | gunzip > db.sql
ssh -f [email protected] -L 3306:server.com:3306 -N
puis:
mysqldump -hlocalhost > backup.sql
en supposant que vous n'avez pas non plus mysql fonctionnant localement. Si vous le faites, vous pouvez régler le port sur autre chose.
J'ai créé un script pour faciliter l'automatisation des commandes mysqldump
sur des hôtes distants en utilisant la réponse fournie par Michel Feldheim comme point de départ:
Le script vous permet d'extraire un cliché de base de données à partir d'un hôte distant avec ou sans SSH
et éventuellement à l'aide d'un fichier .env
contenant des variables d'environnement.
Je prévois d'utiliser le script pour les sauvegardes automatisées de bases de données. N'hésitez pas à créer des problèmes / contribuer - espérons que cela aidera également les autres!