2009-07-30 33 views
5

Ja często sshing na serwerze, przejście do określonego katalogu i działa svn-updateAutomatyzacja svn update

myślę, że jest prawdopodobnie bardzo łatwy sposób zautomatyzować, więc mogę prosty specyficzny podkatalog po uruchomieniu skryptu i zaloguje się przez SSH, cd do właściwego katalogu i uruchom aktualizację svn.

Czy to jest praca dla Capistrano, czy prosty skrypt Bash może wykonać zadanie?

+3

To jest praca dla marki. ssh user @ remote 'cd/ścieżka/do/project && svn update' – LiraNuna

+0

Dzięki, trochę sfatygowałem ten skrypt i zaktualizuje się on po uruchomieniu ./update-devsite :) – Tom

Odpowiedz

5

Brzmi jak zadanie dla cron. Wykonaj crontab i dodać wpis tak:

 
#min hour date month day command 
0 * * *  * ssh [email protected] '(cd path/to/working/copy; svn update)' 

może trzeba skonfigurować ssh passwordless authentication with ssh-agent tak, że nie poprosi.

EDIT (za komentarze poniżej):

Zakładając masz wystarczających uprawnień, aby to zrobić, należy uruchomić

 
ssh [email protected] crontab -e 

Następnie dodać wpis tak:

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

można zignorować część nad edycją, chyba że twój serwer nie pozwala ci używać crona.

+0

Dlaczego nie mieć cron-job uruchomić na komputerze docelowym? – innaM

+0

To jest bardzo dobre pytanie ... Byłem w podobnej sytuacji, w której miałem wystarczające uprawnienia na serwerze, aby uruchomić "aktualizację svn", ale niewystarczające uprawnienia do tworzenia moich własnych zadań cron i po prostu założyłem, że Tom był w podobnej sytuacji . Jednak teraz, gdy go wychowujesz, jest to głupie założenie, aby ... na pewno lepiej byłoby uruchomić zadanie cron na komputerze serwera. –

2

Być może powinieneś zadać sobie pytanie, dlaczego wykonujesz tę akcję?

Czy serwer budujący, taki jak CruiseControl lub Hudson, może rozwiązać bardziej ogólny przypadek (wiedzieć, kiedy wykonano zatwierdzenie svn)?

Jeśli potrzebujesz monitorowania na określonym serwerze svn i masz do niego dostęp administracyjny, możesz włączyć hakowanie po zatwierdzeniu na serwerze, na przykład, aby wysłać wiadomość e-mail o każdym zatwierdzeniu (lub tylko w niektórych rodzaje zatwierdzeń).

Pomogłoby to, gdybyś mógł wyjaśnić przypadek swojej sytuacji.

0

zrobi to prosty skrypt bash, dodaj polecenie aktualizacji svn do pliku/etc/profile.

Zobacz przetwarzanie skryptu here for bash login.

Jeśli chcesz uruchomić go z innego pola (tzn. Nie logować się), pamiętaj, że ssh nie zostanie zamknięty, jeśli jest uruchomiony proces, więc możesz chcieć uruchomić aktualizację w tle, z przekierowaniem do/dev/null.

Powiązane problemy