Gå til innhold

Backupscript


Skompa

Anbefalte innlegg

Hei,

Jeg har problemer med å lage ett lite backupscript.
Jeg ønsker å ha scriptet slik at når du har tatt den første backupen, tar den kunn det som er endret ved neste gang scriptet kjøres.

Scriptet skal kjøres på en linuxmaskin (ubuntu/debian litt usikker der)
Og backupen skal lagres på en eksterndisk.

Ønsker også at når backupen er tatt sendes det en logg på epost.

Håper der kan hjelpe meg.

Lenke til kommentar
Videoannonse
Annonse

#!/bin/bash

cp -r /home/user/produsert /sti til eksterndisk

echo "Backup er tatt"

 

Jeg ønsker at det som allerede er tatt backup av ikke blir tatt neste gang backupen går. Kunn det som er endret blir tatt neste gang.

Også det med epost.

Lenke til kommentar

Du kan legge på u som parameter til cp:

 

cp -ru fra til

 

 

-u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing

 

Ellers så er rsync (grsync for gui versjon) veien å gå

 

rsync -azvvu /home/path/folder1/ /home/path/folder2

https://help.ubuntu.com/community/rsync#Perform_a_Simple_Backup

ta bort vv hvis du vil ha mindre output

Lenke til kommentar

Har sett litt på det.

Andre tips på hvordan jeg kan lage scriptet?

 

Hva er problemet med rsync? En kjapp "rsync -a" gjør det du trenger m.t.p. backup. Slenger du på "--delete" slettes filer i backupen hvis de ikke lenger finnes. Selv liker jeg å slenge på "-P" for å få litt kjekk output, da har du "rsync -aP --delete /opprinnelse /destinasjon"

 

E-post er litt mer jobb, da du trolig må fikse autentisering mot en SMTP-server, f.eks. din ISPs eller Gmail, for å unngå at e-posten blir avvist eller markert som spam. Når du har satt opp en e-posttjeneste, f.eks. Postfix, med autentisering mot gyldig SMTP, er det bare snakk om en enkel sendmail-kommando for å sende e-poster.

 

Er det snakk om en desktop-PC der du vil ha backup av dokumenter osv, hva med å sjekke ut Back In Time, som er et front-end for rsync med snapshots og hele pakken?

Endret av oj88
Lenke til kommentar

Ja kanskje det.
Men nå har jeg laget dette scriptet.

--------------------------------------------------------------------------------

#!/bin/bash

cp -ru /home/yngve/Downloads /home/yngve/Backup

echo "Backup tatt"

--------------------------------------------------------------------------------

Men ønsker å få sendt en logg på epost.

Lenke til kommentar

Tror du er bedre tjent med å bruke en etablert løsning enn å prøve å scripte noe selv om du ikke har noen særlige kunnskaper til scripting (er vel strengt talt bare noen kommandoer..). Om det skal være noe poeng i det her så vil du gjerne at den kjører jevnlig, så da bruker du typisk crontab også. Mail er også mer stress å sette opp enn du kanskje tror, så det ville jeg revurdert.

 

rsync -azvvu /home/path7folder1/ /home/path/folder2

Er vel ikke noe vits å bruke -z for compress om det er snakk om lokal backup?

Lenke til kommentar

Da legger du til en "backupkommando > filnavn.txt" eventuelt "backupkommando >> filnavn.txt".

 

Førstnevnte overskriver eventuell eksisterende fil. Sistnevnte legger til ny linjer i eventuell eksisterende fil. Dersom filen ikke eksisteres opprettes det en ny. Det kan gjøres i selve scriptet eller i crontab.

Endret av RattleBattle
Lenke til kommentar

Seriøst, dette er gjort tusen ganger før og stort sett samtlige bedre enn dette (no offence). Jeg skjønner at tankegangen er å kanskje lære litt om bash-scripting, men backup skal man egentlig ikke kødde med. Bruk for eksempel Back in Time som er et meget godt og fleksibelt program med testede teknologier i bunnen og gjør dette skikkelig :)

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å
×
×
  • Opprett ny...