Gå til innhold

Anbefalte innlegg

Hva er den beste måten å oppdatere mange mapper på i terminalen?

Jeg har ssh på serveren og får å oppdatere hjemmesiden min så laster jeg ned med wget og bruker tar -zxf til å hente ut filene og de havner da i en undermappe.

problemet blir å flytte mappene, da jeg får feilmelding på grunn av at det er en del mapper blant filene

jeg prøver meg da med mv-kommandoen, Hvordan skal jeg få til dette enklest mulig?

 

Jeg skal altså flytte alt innholdet fra /tilfeldigmappe til .. og dermed overskrive alle filer med samme navn

Lenke til kommentar
Videoannonse
Annonse
Jeg hadde heller brukt et versjonskontrollsystem som f.eks. Subversion - mye enklere og bedre. (Hvis jeg forsto problemet ditt rett, that is..)
Du mener å ha et repo og en utsjekket kopi på serveren, hvor sistnevnte fungerer som den faktiske hjemmesiden? Ikke så dum idé det.

Hvordan ville dette fungert?

Lenke til kommentar

Du lager et Subversion repository ett eller annet sted på serveren din som du putter nettsiden din i, f.eks. fra en arbeidskopi hjemme. Så sjekker du ut en ny arbeidskopi nøyaktig der hjemmesiden din ligger.

 

Nå du da jobber hjemme og committer til repositoriet, kan du senere bare gjøre en update i arbeidskopien på serveren og vips så er nettsiden oppdatert utad.

 

Redigert: Staving

Endret av Drømmemannen
Lenke til kommentar

Hvordan installere Subversion og lage et fungerende repository:

 

På serveren, skaff root-tilgang:

$ sudo su

Installere Subversion:

$ apt-get install subversion

Det er typisk å legge repositoriet i /var, f.eks. /var/svn/repo, så da må du kjøre:

$ mkdir /var/svn
$ svnadmin create /var/svn/repo

Du må ha tilgang til repositoriet. Jeg ville laget en gruppe som heter f.eks. svn:

$ groupadd svn

Gjøre deg medlem av gruppa:

$ usermod -a -G svn brukernavn

Sette rettigheter på repo:

$ chgrp -R svn /var/svn/repo
$ chmod -R g-w /var/svn/repo
$ chmod -R g+rw /var/svn/repo/db
$ chmod -R g+rw /var/svn/repo/locks
$ chmod g-w /var/svn/repo/db/format

Da skal innholdet i /var/svn/repo se ut noe slikt som:

-rw-r--r-- 1 root svn  229 Sep 18 15:45 README.txt
drwxr-xr-x 2 root svn 1024 Sep 18 15:45 conf
drwxr-xr-x 2 root svn 1024 Sep 18 15:45 dav
drwxrwsr-x 5 root svn 1024 Oct 28 23:39 db
-r--r--r-- 1 root svn	2 Sep 18 15:45 format
drwxr-xr-x 2 root svn 1024 Sep 18 15:45 hooks
drwxrwxr-x 2 root svn 1024 Sep 18 15:45 locks

Legg merke til s-en på db-mappen.

 

Innholdet i /var/svn/repo/db skal ligne på:

-r--r--r-- 1 root	 svn	2 Sep 18 15:45 format
-rw-rw-r-- 1 root	 svn	5 Sep 18 15:45 fs-type
drwxrwsr-x 2 root	 svn 1024 Oct 28 23:39 revprops
drwxrwsr-x 2 root	 svn 1024 Oct 28 23:39 revs
drwxrwsr-x 2 root	 svn 1024 Oct 28 23:39 transactions
-rw-rw-r-- 1 root	 svn   37 Sep 18 15:45 uuid
-rw-rw-r-- 1 root	 svn	0 Sep 18 15:45 write-lock

Avhengig av hva umask sier må du kanskje lage en kjørbar fil /usr/local/bin/svnserve med innhold:

#!/bin/sh
umask 002
/usr/bin/svnserve "$@"

slik at commits til repoet blir aksesserbare av eventuelle andre brukere. En måte å sjekke om du trenger å gjøre dette er å først la være, så gjøre en commit (se under), og så sjekke i /var/svn/repo/db/revs hvilke rettigheter revisjonene får når du committer. Hvis det ikke er -rw-rw-r-- så må dette til.

 

Nå kan du begynne å bruke repositoriet.

 

Sjekk ut en working copy på din egen lokale maskin:

$ svn co svn+ssh://brukernavn@server/var/svn/repo repo

Da får du en mappe som heter repo hvor du kan jobbe og committe filer til repo.

 

Du kan gjøre en tilsvarende checkout lokalt på serveren hvor hjemmesiden din ligger:

$ svn co file:///var/svn/repo .

Jeg foreslår at du leker litt med Subversion og blir kjent med hvordan det fungerer før du eventuelt gjør en checkout der hjemmesiden din ligger slik at ikke noe blir ødelagt.

 

Online Subversion-bok: http://svnbook.red-bean.com/

Endret av Drømmemannen
Lenke til kommentar
  • 4 uker senere...

Subversjon er genialt på slikt. Da kan man også ha en testserver som man har nyeste versjonen på og så oppdatere koden på hovedserveren når koden er stabil. Man kan også ha flere forskjellige versjoner i subversion samtidig. Alt står forklart i den online-boka Drømmemannen linket til. Den finnes også på norsk her (delvis, det viktigste er oversatt, det andre står på engelsk): http://svnbook.red-bean.com/index.nb.html

Lenke til kommentar
  • 1 måned senere...
Du mener å ha et repo og en utsjekket kopi på serveren, hvor sistnevnte fungerer som den faktiske hjemmesiden? Ikke så dum idé det.

Stemmer, er dette jeg mener. Har planer om å gjøre det samme på min server i nærmeste framtid. :)

 

Dette er ikke noe big deal. Subversion har allerede automatiske funksjoner som gjør dette for deg, f.eks. hook scripts som automatisk blir kjørt når du gjør endringer(commit, update osv) på svn-serveren. Her er linjene jeg skrev inn i ett av svn sine hook scripts.

 

Gå til hooks-mappen i repoet ditt:

cd /usr/local/repositories/REPO/hooks/

 

Ta det scripet som passer deg. Feks det som kjører når du laster opp koden din til repoet (commit).

nano post-commit

 

legg til:

#!/bin/sh
/usr/local/bin/svn update /usr/local/www/NAVNPAAHJEMMESIDEREPO

 

I tillegg må du gjøre klar web-mappen din:

/usr/local/bin/svn checkout file:///usr/local/repositories/REPO/ /usr/local/www//NAVNPAAHJEMMESIDEREPO/

 

Husk at svn-brukeren(apache/svn/your-user-here) får tilgang til web-filene/-mappen, ellers får den ikke kjørt checkout på den.

 

Hver gang du tar commit i eclipse eller i din favoritteditor så blir koden automatisk sendt til web-mappen din.

Den oppdaterer webmappen din for hver minste detalje du fikser på/commiter, og du får testet koden din omgående.

 

Trenger ikke å gjøre dette verre enn det det er :)

Endret av LOOM
Lenke til kommentar
  • 3 uker senere...
Jeg driver forøvrig å mekker et program i Ruby som oppdaterer arbeidskopien på serveren automatisk (via SSH), hvis det skulle være interessant for noen. :)

 

...

#!/bin/bash
ssh server "cd /path/to/app; svn up"

?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...