rsync...

Tråden skapades och har fått 16 svar. Det senaste inlägget skrevs .
1

Jag skulle behöva använda rsync för backup.
Jag har denna miljö:
Xserve med 4 seglade diskar. 2x80 samt 2x250 (original).
Har även ett Xraid med bl.a. 2x250 (backup) som ska användas för backup.

Vill använda rsync för att 3 ggr per dygn knuffa över original till backup.
De tre ggrna sköter jag med crontab men nu är det till själva rsync scriptet.
Jag måste kolla att Xraiden finns att tillgå, sedan ska jag kopiera över materialet.

Hur jag ska kolla är den del jag inte lyckats klura ut ännu.
rsync är inte så svårt så jag hade tänkt använda detta:

rsync -qrap /Volumes/Original/ /Volumes/Backup/

Fungerar det tror ni som kan mer än mig på detta område?

ps. heh lite vitsigt att flaggan med qrap aka crap... ds.

kan du inte köra nån ifsats som kollar output från en ls i katalogen /Volumes/, typ om Backup finns där så kör den på med rsync...

Hmmm det är en tanke. Får leka lite med det.

Hmm läste lite om if... och hittade detta:
if [ -d /Volumes/backup ]

När jag kör detta script:

#!/bin/bash

if [ -d /Volumes/Backup ]  
then
        echo "Backup!"
else
        echo "No backup."
fi  
done

Får jag:
sudo: b.sh: command not found

Varför?

hur kör du det?

det ska vara exekverbart (tex chmod +x b.sh) och står du i samma katalog som filen ska det ju vara "./b.sh" när du ska köra det..

*vissel vissel*

hmmm hmmm glömde x...

Såja nu funkar det. Lite x så gick det bra.

Lägger i det i shellscriptet med execute rättigheter, kör det så här:
sudo ./b.sh

ser ut så här i listan:
-rwxrwx--- 1 mathed mathed 177 2 Jul 11:18 b.sh

mathed:~/Projects mathed$ sudo ./b.sh 
Password:
Starting Backup...
rsync: mkdir /Volumes/Backup/Temp/mhbackup: Permission denied
rsync error: error in file IO (code 11) at /SourceCache/rsync/rsync-12/rsync/main.c(319)
rsync: connection unexpectedly closed (8 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-12/rsync/io.c(165)
Backup done.
mathed:~/Projects mathed$ 

Okej, jag fattar att min root användare inte har access på servern men hur styr jag om det så att den körs med rätt användare?
Och varför vill den skapa mappen varje gång? Om den redan finns vad händer då?
Här har ni rsync kommandot:
rsync -rz --delete /Users/mathed/mhbackup/ /Volumes/Backup/Temp/mhbackup/

För kör jag kommandot direkt i terminalen fungerar det perfekt.

körs det cron jobbet under/för root? dvs har du sagt till cron att den ska köra det kommandot som root användaren?

Ja, det har jag. Eftersom om jag inte kör det som root protesterar den mot det. Det har med accesen till Volumes mappen att göra. Kan jag i scriptet säga till vilka kommandon som ska köras som root och inte?

Går de inte att köra hela kittet som en annan user då, dvs scriptet o allt?
sätt så filen ägs av den usern du ska köra den som "chown user:grupp fil", sen chmodda den "chmod 4766" då bör den exekveras som denna user om ja minns rätt.

hmm, du har alltså inga möjligheter att köra det som root genom cron skriptet?? (är lite förvirrad över exakt hur du menar )

Kan inte omedelbart komma på ett sätt där man kan välja, eftersom man antingen måste vara inloggat/köras som root eller authentisera sig via tex su/sudo, och det sista förstör ju lite om det inte ska köras interaktivt...

problemet är väl att han inte får komma år den mountade Xraiden som root? eller har ja fattat fel?

I crontab måste jag ange som vilken användare sciptet ska köras.
Jag sätter det dem användare som finns på servern.

Jag har inte så mycket att tillföra själv, men jag har noterat att rsync (och varianter för HFS+ som RsyncX) har diskuterats en del där. Här är några länkar, där kanske finns matnyttig info:
A free perl/rsync backup script
A detailed walkthrough on creating backups using rsync
A summary hint of rsync-related information

Tack!
Nu är helgen räddat!

1
Bevaka tråden