2 votes

ssh remote command-fu

J'essaie d'effectuer une sauvegarde à distance derrière un pare-feu. Ce n'est vraiment pas un problème de casser cela dans son propre script qui est appelé dans crontab, mais ce n'est pas amusant ! Ce que j'essaie de faire avec :

pg_dump -U my_user my_database | ssh me@myserver "> backup.sql"

consiste à sauvegarder une base de données postgresql (en vidant tout sur stdout) et à la rediriger vers une commande ssh distante qui la place simplement dans backup.sql.

Malheureusement, tout ce que j'obtiens est un "backup.sql" vide sur ma boîte distante. La redirection n'est pas mon point fort, donc tout conseil serait apprécié. merci.

12voto

Kyle Hayes Points 845

Encore mieux : compressez-le avant de le mettre en SSH :

pg_dump -U my_user my_database | gzip -c | ssh me@myserver "cat > backup.sql.gz"

Cela permet d'économiser une grande quantité de bande passante avec les vidages SQL.

En fait, je le fais dans l'autre sens. Je demande au serveur de sauvegarde de se connecter au serveur à sauvegarder. Cela signifie que si un serveur (en dehors du serveur de sauvegarde, qui a une sécurité sérieusement fasciste) était compromis au niveau de la racine, le serveur de sauvegarde - et donc tous les autres serveurs ! - ne sont pas compromis par défaut.

Ma commande pour effectuer le vidage SQL à distance est donc un peu différente :

ssh <server> "pg_dump -U <user> <database> | gzip -c" > /backups/sqlbackup.sql.gz

Faites particulièrement attention à l'emplacement des guillemets : ils définissent ce qui est exécuté à distance et ce qui est exécuté localement.

8voto

pQd Points 29251

Pruebe

pg_dump -U my_user my_database | ssh me@myserver "cat > backup.sql"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X