Gå til innhold

Spørsmål angående rsync


Lindsay

Anbefalte innlegg

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 av nre1458
Lenke til kommentar
Videoannonse
Annonse

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
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

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 av Zenit
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...