Permalänk
Medlem

Rsync script - förslag?

Jag tänkte höra med er mer bevandrade om lite synpunkter på nåt jag snickrat ihop..
Tanken är att detta scriptet ska köras på en server. Denna server i sin tur kopplar upp mot en annan server, och syncar över ett mappträd.
Detta går över nätet och över en ADSL lina. Det kommer förmodligen hända att uppkopplingen någon gång går ner innan eller under tiden som syncen utförs, men det borde inte ställa till alltför mycket problem. Det är inte kritiskt att den måste bli klar varje körning. Men en gång i veckan kan jag väl sätta som någon form av gräns.
Scriptet är tänkt att köras mån-ons-fre inledningsvis. Snabba uträkningar gav mig ungefär 350MB/h om hastigheterna ligger hyffsat stabila, vilket i värsta fall borde ta 3-4 timmar, högst, troligtvis närmare 1-2 timmar per tillfälle.

Jag skulle vilja veta vad jag ev. kan förbättra
Såhär har jag tänkt lösa det:

Server #1 kopplar upp mot Server #2, gör ett försök att logga in med ssh (jag har satt upp nycklar etc för detta, så det är avklarat), kör sedan en echo och loggar ut, om detta lyckas kör vi rsync-kommandot, annars felrapporterar vi. Om jag förstått detta rätt så kommer jag att få utskrifterna i min daily-report från cron? (Därav mina tappra försök att få en någorlunda fin output)

#!/bin/sh RSYNC=/usr/bin/rsync SSH=/usr/bin/ssh DATE=/bin/date KEY=/pathTo/key # Provide our key L_PATH=/local/path # Local path to store the files R_USER=xx # Login as.. R_HOST=xx # Remote address to connect to R_PATH=/remote/path/ # Remote path to backup R_PORT=22 # Standard port 22 echo "\n$($DATE +"%F %T") - `basename $0`\n" echo "Initializing script against host: $R_HOST"; if $(ssh -q -o "BatchMode=yes" $R_USER@$R_HOST "echo 2>&1"); then { # DBG: add -p for port, -i for key echo " - Starting rsync at\t\t\t$($DATE +"%F %T")" $RSYNC -az -e $SSH $R_USER@$R_HOST:$R_PATH $L_PATH > /dev/null # DBG: add -p for port, -i for key if [ $? -eq 0 ]; then { echo " - Backup successfully completed\t\t$($DATE +"%F %T")"; exit 0; } else { echo " !! Problems occurred during backup at $($DATE +"%F %T")\n Backup did !NOT! complete!"; exit 1; } fi } else { echo " !! Problem connecting to $R_HOST\n giving up at $($DATE +"%F %T")"; exit 1; } fi

Visa signatur

WS: Asus P8Z77-I Deluxe mITX | Intel 3770K@4.6 | NH-U12P | Asus 780 GTX | Corsair 2x8GB 1600Mhz CL9 | Samsung 840 512GB | Ubuntu 16.04.3 x86_64 | Corsair AX750 | 2x Dell U2412M | Puppe.se | NAS: i7 860, 16GB DDR3, GA-P55M-UD4, FD Define R3, 8x2TB Samsung F4EG, Serveraid M1015, EVGA 750W G2 PSU, FreeBSD x64

Permalänk
Hedersmedlem
Citat:

uppkopplingen någon gång går ner

Lägg till --timeout=3600 så rsync inte hänger sig vid överföringsproblem. --contimeout kanske också är bra att ha, vet inte vad default är.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Medlem

Komprimering kan också vara en bra grejj beroende på vad man rsyncar. Sen kan ju också parametern "--delete" vara på sin plats om man vill att trädet ska se "EXAKT" ut som maskinen man rsyncar ifrån. Delete tar alltså bort de filer som finns på target som inte finns på source. Så om man flyttar eller tar bort något på originalservern så tas den även bort på backupmaskinen.

Permalänk
Medlem
Skrivet av Aphex:

Lägg till --timeout=3600 så rsync inte hänger sig vid överföringsproblem. --contimeout kanske också är bra att ha, vet inte vad default är.

Ska se över dom alternativen, tackar!

Skrivet av iXam:

Komprimering kan också vara en bra grejj beroende på vad man rsyncar. Sen kan ju också parametern "--delete" vara på sin plats om man vill att trädet ska se "EXAKT" ut som maskinen man rsyncar ifrån. Delete tar alltså bort de filer som finns på target som inte finns på source. Så om man flyttar eller tar bort något på originalservern så tas den även bort på backupmaskinen.

Växlarna -az (archive, compress) fixar detta dock Tack iaf!

Visa signatur

WS: Asus P8Z77-I Deluxe mITX | Intel 3770K@4.6 | NH-U12P | Asus 780 GTX | Corsair 2x8GB 1600Mhz CL9 | Samsung 840 512GB | Ubuntu 16.04.3 x86_64 | Corsair AX750 | 2x Dell U2412M | Puppe.se | NAS: i7 860, 16GB DDR3, GA-P55M-UD4, FD Define R3, 8x2TB Samsung F4EG, Serveraid M1015, EVGA 750W G2 PSU, FreeBSD x64

Permalänk
Medlem

Följande switchar kanske är interessanta.

--log-file=FILE log what we're doing to the specified FILE --log-file-format=FMT log updates using the specified FMT --compress-level=NUM explicitly set compression level --progress show progress during transfer -P same as --partial --progress -v verbose

--archive inkluderar inte --delete.

Det kan vara en bra idee att logga det som händer någonstans. Det brukar vara trevligt att veta vilka filer som ofta orsakar problem.

Permalänk
Medlem
Skrivet av mix_room:

Följande switchar kanske är interessanta.

--log-file=FILE log what we're doing to the specified FILE --log-file-format=FMT log updates using the specified FMT --compress-level=NUM explicitly set compression level --progress show progress during transfer -P same as --partial --progress -v verbose

--archive inkluderar inte --delete.

Det kan vara en bra idee att logga det som händer någonstans. Det brukar vara trevligt att veta vilka filer som ofta orsakar problem.

Läste lite för hastigt, -D var det, men den menade --devices .
Tack för tipsen!

Visa signatur

WS: Asus P8Z77-I Deluxe mITX | Intel 3770K@4.6 | NH-U12P | Asus 780 GTX | Corsair 2x8GB 1600Mhz CL9 | Samsung 840 512GB | Ubuntu 16.04.3 x86_64 | Corsair AX750 | 2x Dell U2412M | Puppe.se | NAS: i7 860, 16GB DDR3, GA-P55M-UD4, FD Define R3, 8x2TB Samsung F4EG, Serveraid M1015, EVGA 750W G2 PSU, FreeBSD x64