Lindsay Skrevet 19. desember 2006 Del Skrevet 19. desember 2006 (endret) Hva eksakt er det denne gjør? #!/bin/sh # Simple rsync "driver" script. (Uses SSH as the transport layer.) # http://www.scrounge.org/linux/rsync.html # Demonstrates how to use rsync to back up a directory tree from a local # machine to a remote machine. Then re-run the script, as needed, to keep # the two machines "in sync." It only copies new or changed files and ignores # identical files. # Destination host machine name DEST="Debian" # User that rsync will connect as # Are you sure that you want to run as root, though? USER="root" # Directory to copy from on the source machine. BACKDIR="/root/bin/" # Directory to copy to on the destination machine. DESTDIR="192.168.1.3" # excludes file - Contains wildcard patterns of files to exclude. # i.e., *~, *.bak, etc. One "pattern" per line. # You must create this file. # EXCLUDES=/root/bin/excludes # Options. # -n Don't do any copying, but display what rsync *would* copy. For testing. # -a Archive. Mainly propogate file permissions, ownership, timestamp, etc. # -u Update. Don't copy file if file on destination is newer. # -v Verbose -vv More verbose. -vvv Even more verbose. # See man rsync for other options. # For testing. Only displays what rsync *would* do and does no actual copying. OPTS="-n -vv -u -a --rsh=ssh --exclude-from=$EXCLUDES --stats --progress" # Does copy, but still gives a verbose display of what it is doing #OPTS="-v -u -a --rsh=ssh --exclude-from=$EXCLUDES --stats" # Copies and does no display at all. #OPTS="--archive --update --rsh=ssh --exclude-from=$EXCLUDES --quiet" # May be needed if run by cron? export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # Only run rsync if $DEST responds. VAR=`ping -s 1 -c 1 $DEST > /dev/null; echo $?` if [ $VAR -eq 0 ]; then rsync $OPTS $BACKDIR $USER@$DEST:$DESTDIR else echo "Cannot connect to $DEST." fi Og skulle gjerne ha hatt det slik att en ikke trenger å taste inn passor hver gang Endret 19. desember 2006 av nre1458 Lenke til kommentar
McEwan Skrevet 23. desember 2006 Del Skrevet 23. desember 2006 Scriptet bruker RSYNC for å ta en backup eller speile filer i en katalog fra en datamaskin til en annen. Scriptet er videre et såkalt test-script og må modifiseres litt før du bruker det. Dersom du kan litt engelsk så står det godt forklart hvordan scriptet fungerer og hvordan du kan modifisere det: Scrounge.org I kommentarene til scriptet nevnes videre noen punkter: - Scriptet kobler til som brukeren root, bør kanskje endres? - Scriptet er default i "test" modus, dvs at når det kjører så kopierer det ingenting, men viser hva det ville eventuelt ha kopiert/speilet. Du må kommentere ut denne testlinjen og fjerne kommentartegnet fra en av linjene under. Du kan velge mellom to andre modus her: et hvor det kopieres og det gis tilbakemeldinger på hva som skjer (verbose mode), og et hvor det kopieres og hvor det ikke vises slike tilbakemeldinger. Det er også fullt mulig å automatisere slik at du slipper å taste passord for hver gang (auto-login). Du må da sette opp RSA-nøkler som beskrevet her: Getting started with SSH Kopiert fra nettsiden Scrounge.org: Klikk for å se/fjerne innholdet nedenfor Generate a public key with ssh-keygen as the user that you will be connecting with rsync. Choose a good pass phrase. Insert the key you just created into ~/.ssh/authorized_keys. Copy the ~/.ssh/authorized_keys file to the other machine(s). Set permissions (chmod 644) for ~/.ssh/authorized_keys, if needed. Optional. You may want to Use ssh-agent $SHELL to make the keys and pass phrases available to other commands (like rsync....) Use ssh-add to load keys in memory. Use slogin hostname to log into the remote host machine, as a means of testing to see if you can establish a SSH connection. Press Ctrl-D to log out. What you are aiming for is getting SSH configured so that you can use slogin to connect to the remote machine with no password prompt. So that scripts that you write using rsync won't require you to be at a console to type a password in. Lenke til kommentar
Lindsay Skrevet 23. desember 2006 Forfatter Del Skrevet 23. desember 2006 Scriptet bruker RSYNC for å ta en backup eller speile filer i en katalog fra en datamaskin til en annen. Scriptet er videre et såkalt test-script og må modifiseres litt før du bruker det. Dersom du kan litt engelsk så står det godt forklart hvordan scriptet fungerer og hvordan du kan modifisere det: Scrounge.org I kommentarene til scriptet nevnes videre noen punkter: - Scriptet kobler til som brukeren root, bør kanskje endres? - Scriptet er default i "test" modus, dvs at når det kjører så kopierer det ingenting, men viser hva det ville eventuelt ha kopiert/speilet. Du må kommentere ut denne testlinjen og fjerne kommentartegnet fra en av linjene under. Du kan velge mellom to andre modus her: et hvor det kopieres og det gis tilbakemeldinger på hva som skjer (verbose mode), og et hvor det kopieres og hvor det ikke vises slike tilbakemeldinger. Det er også fullt mulig å automatisere slik at du slipper å taste passord for hver gang (auto-login). Du må da sette opp RSA-nøkler som beskrevet her: Getting started with SSH Kopiert fra nettsiden Scrounge.org: Klikk for å se/fjerne innholdet nedenfor Generate a public key with ssh-keygen as the user that you will be connecting with rsync. Choose a good pass phrase. Insert the key you just created into ~/.ssh/authorized_keys. Copy the ~/.ssh/authorized_keys file to the other machine(s). Set permissions (chmod 644) for ~/.ssh/authorized_keys, if needed. Optional. You may want to Use ssh-agent $SHELL to make the keys and pass phrases available to other commands (like rsync....) Use ssh-add to load keys in memory. Use slogin hostname to log into the remote host machine, as a means of testing to see if you can establish a SSH connection. Press Ctrl-D to log out. What you are aiming for is getting SSH configured so that you can use slogin to connect to the remote machine with no password prompt. So that scripts that you write using rsync won't require you to be at a console to type a password in. 7560909[/snapback] Har nå fått det til å funke men skjønte ikke helt hvordan en kan automatisere og slippe å taste inn passord.Hadde vært greit om jeg kunne ha fått hjelp i hvor passordet skal skrives inn i scriptet Lenke til kommentar
comicz Skrevet 23. desember 2006 Del Skrevet 23. desember 2006 Det er et langt script for å kjøre én kommando. man rsync :--) Ang. passord, det brukes SSH så det er vel bare å bruke passordfrie SSH-nøkler. Lenke til kommentar
Zenit Skrevet 24. desember 2006 Del Skrevet 24. desember 2006 (endret) Scriptet bruker rsync for å kopiere data mellom to kataloger på to forskjellige maskiner. DEST settes til hostnavn eller IP til maskinen det skal kopieres til og DESTDIR er path til katalogen dataene blir kopiert til. Som transport brukes her ssh. Kopieringen blir kun utført hvis maskinen det kopieres til svarer på én ping reply. ssh-nøkler er enklest for å slippe passord. Det er nevnt at du kan lage nøkler med passord for så å legge nøkkelen til ssh-agent. Du _kan_ lage en passordløs nøkkel og dermed slippe ssh-agent, men da skal du ta godt vare på den og være rimelig sikker på at den ikke kommer på avveie. Og ja, det gjør man ikke som root. edit: leif Endret 24. desember 2006 av Zenit Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå