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 Titta på rsync är mitt tips.
nohopeMedlem sedan jan. 20059 inlägg 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 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
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!