webForumDet fria alternativet

Eget shellscript med argument

4 svar · 630 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Hej,

Jag har ett system som flera kunder använder.
Systemet är uppdelat i två delar, en "kunddel" och en "kärndel". När jag gör uppdateringar så gör jag det på ett ställe och sen kopierar jag alla filer som tillhör kärnan till alla andra och skriver över de befintliga filerna.

Nu tänkte jag snabba upp det här lite och göra ett shellscript som jag kan köra när jag har uppdaterat något.

Hur gör man?
Det som ska göras är:

  • Alla filer i webbrooten ska bort
  • Filer ska kopieras från katalog /home/user1.domain.com/public_html till /home/user2.domain.com/public_html
  • Rättigheter (chmod -R 777) ska sättas på tre mappar.

Jag vill kunna köra t.ex. sh myshell -user2 och då ska /home/user1/public_html kopieras till /home/[argument]/public_html och sen ska rättigheterna sättas på de tre mapparna i user2's public_html.

Är det här möjligt?

dhoMedlem sedan aug. 20022 027 inlägg
#2

Titta på rsync är mitt tips.

nohopeMedlem sedan jan. 20059 inlägg
#3

Visst är det möjligt. Antingen gör du det via ett shellskript. Annars hade jag valt och skriva ett litet perlskript för ändamålet.

http://tldp.org/LDP/abs/html/

colioneMedlem sedan juni 20014 421 inlägg
#4

Känns overkill att göra i perl. Här har du en otestad boilerplate du kan gå efter.

#! /bin/bash

FROM=$1
TO=$2

function doit() {
   rm -rf "/path/to/webrooten/*"
   cp -r "/home/$FROM.domain.com/public_html/*" "/home/$TO.domain.com/public_html"
   chmod -R 777 "/en/mapp" "/en/mapp"  "/en/mapp"
}

if [ -z $1 -o -z $2 ]; then
   echo "Exiting, i need both a from and a to desitnation"
else
   doit()
fi
MickeA.comMedlem sedan feb. 20034 441 inlägg
#5

colione skrev:

Känns overkill att göra i perl. Här har du en otestad boilerplate du kan gå efter.

#! /bin/bash

FROM=$1
TO=$2

function doit() {
   rm -rf "/path/to/webrooten/*"
   cp -r "/home/$FROM.domain.com/public_html/*" "/home/$TO.domain.com/public_html"
   chmod -R 777 "/en/mapp" "/en/mapp"  "/en/mapp"
}


if [ -z $1 -o -z $2 ]; then
   echo "Exiting, i need both a from and a to desitnation"
else
   doit()
fi

Det här ser ut som en riktigt bra början, ska kolla mer på det under dagen.

Tack!

127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)