Question

Je me connecte fréquemment à un serveur, passe à un répertoire spécifique et exécute svn-update

Je pense qu'il existe probablement un moyen très simple d'automatiser cette opération. Je peux donc spécifier un sous-répertoire spécifique lorsque j'exécute le script. Il se connecte via SSH, cd dans le bon répertoire et exécute svn-update.

S'agit-il d'un travail pour capistrano ou d'un simple script bash pour faire le travail?

Était-ce utile?

La solution

Cela ressemble à un travail pour cron . Exécutez crontab , puis ajoutez une entrée similaire à celle-ci:

#min hour date month day command
 0   *    *    *     *   ssh user@host '(cd path/to/working/copy; svn update)' 

Il se peut que vous deviez configurer l’ authentification sans mot de passe ssh avec ssh-agent pour gagner pas invite.

EDIT (selon les commentaires ci-dessous):

En supposant que vous ayez les privilèges suffisants pour le faire, exécutez

ssh user@host crontab -e

Ajoutez ensuite une entrée comme celle-ci:

#min hour date month day command
 0   *    *    *     *   (cd path/to/working/copy; svn update)

Vous pouvez ignorer la partie au-dessus de la modification, à moins que votre serveur ne vous autorise pas à utiliser cron.

Autres conseils

Peut-être devriez-vous vous demander pourquoi vous effectuez cette action?

Un serveur de compilation tel que CruiseControl ou Hudson pourrait-il résoudre le cas plus général (savoir quand une validation svn a été effectuée)?

Si vous avez besoin de surveillance sur un serveur svn spécifique et que vous y avez accès, vous pouvez activer un raccordement post-commit au serveur, par exemple pour vous envoyer un email à chaque commit (ou seulement sur certains types spécifiques). des commits).

Cela aiderait, si vous pouviez clarifier le cas d'utilisation de votre situation.

le script bash simple le fera, ajoutez la commande svn update à votre fichier / etc / profile.

Voir ici pour le traitement du script de connexion bash .

Si vous voulez l'exécuter à partir d'une autre boîte (c.-à-d. ne pas vous connecter), rappelez-vous simplement que ssh ne se fermera pas s'il y a un processus en cours. Vous pouvez donc exécuter la mise à jour en arrière-plan, avec tous les éléments redirigés vers / dev / null.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top