Gå til innhold

Trenger litt hjelp med et backup script


Anbefalte innlegg

Hei

 

jeg har laget et backup script som tar backup av alle filene som ligger på webserveren og lagrer det i en katalog.

 

/etc/cron.daily/backup_web

tar -cpf /storage/backup/$(date +%Y_%m_%d)_htdocs.tar  /var/www/htdocs/

 

Filene er tilsammen på 1.3 GB og derfor ønsker jeg å slette alle backupfiler som er eldre enn 7 dager. Noen som kan hjelpe meg med et script som gjør dette?

Lenke til kommentar
Videoannonse
Annonse

Hva med noe ala dette:

find /storage/backup/ -maxdepth 1 -regex .\*htdocs\\.tar -ctime +7  -exec rm \{\} \;

 

Helt utestet, så du bør kanskje bytte ut -exec rm med noe tryggere (f.eks ls -l) før du setter i gang kommandoen på en produksjonsserver.

 

Edit: En tryggere sletting kan du f.eks. gjøre ved å bytte ut -exec rm med noe a'la dette:

mkdir /tmp/deleteme && find /storage/backup/ -maxdepth 1 -regex .\*htdocs\\.tar -ctime +7 -exec mv {,/tmp/deleteme/}\{\} \;

 

Og så slette det som ligger i /tmp/deletethis/ dersom du ser at de riktige filene ble flyttet. Ellers er det bare å flytte dem tilbake igjen.

Endret av Entropi
Lenke til kommentar

Eg har laga eit backupscript som tek vare på dei mappene eg vil og lagrar dei etter dag, slik at eg alltid har backup for ei veke bakover. Scriptet bruker rsync (dvs den tek berre backup av endringar), og er satt opp slik at du får ein identisk kopi ein anna plass på disken, men scriptet kopierar altså berre dei nødvendige filene.

 

Sei i frå om du er interessert.

Lenke til kommentar

Scriptet (/usr/sbin/backupscript - husk å gjere executable):

 

#!/bin/bash

BACKUP="/mappe/1 /mappe/2"
PLASSERING="/backup/$1"

for MAPPESTRUKTUR in $BACKUP; do

mkdir -p $PLASSERING/$MAPPESTRUKTUR

rsync -av --delete $MAPPESTRUKTUR/ $PLASSERING/$MAPPESTRUKTUR/

done

exit 0

 

(Hos meg er altså /backup eigen disk)

 

Desse mappane må lagast:

/backup/mandag

/backup/tysdag

/backup/onsdag

/backup/torsdag

/backup/fredag

/backup/laurdag

/backup/sondag

 

rsync må vere installert

 

BACKUP = Mappene som skal takast backup av

PLASSERING = Sti til der backup skal havne ($1 må vere med)

 

Crontaben til root:

 

0 3 * * 0 /usr/sbin/backupscript sondag 1>/dev/null 2>/dev/null
0 3 * * 1 /usr/sbin/backupscript mandag 1>/dev/null 2>/dev/null
0 3 * * 2 /usr/sbin/backupscript tysdag 1>/dev/null 2>/dev/null
0 3 * * 3 /usr/sbin/backupscript onsdag 1>/dev/null 2>/dev/null
0 3 * * 4 /usr/sbin/backupscript torsdag 1>/dev/null 2>/dev/null
0 3 * * 5 /usr/sbin/backupscript fredag 1>/dev/null 2>/dev/null
0 3 * * 6 /usr/sbin/backupscript laurdag 1>/dev/null 2>/dev/null

 

Crontaben køyrer backupscriptet kvar natt klokka 3, og backupen for mandag havnar i /backup/mandag osv

Lenke til kommentar

Hvordan kan man INKREMENTELL backup (?=rsync) til en annen maskin over netverk uten at backupprogrammet har root tilgang på backupserveren, og samtidig får muligheten til å bevare brukernavn og filrettigheter?

Aller helst skal det hele skje med kompresjon før sending over nett, og det er da ingen grunn til å dekomprimere før lagring på backupserveren.

 

Noen forslag på dette?

Lenke til kommentar

Hmm.. interresant

 

Men et par ting. For det første ønsker jeg å skrive alt innholdet til kun en fil. For det andre finnes det en syntax for å eksludere filer some f.eks. .exe filer?

 

Er det mulig å få rsync til å kopiere filene over ftp?

eks noe sånnt:

rsync -av --delete /var/www/htdocs/ -ftp:'ftp://bruker:[email protected]/backup/'

Lenke til kommentar

rsync har også sin egen serverløsning med kryptering og kompresjon.

Problemet, uansett om man kjører rsync server eller ssh tunell er at det trengs root-tilgang på serversiden for å kunne beholde brukernavn. (Brukernavnene må vel også eksistere på serveren for å kunne bevares?)

Rsync har også innebygget kompresjon som kan gjøres før den sender over nett, men det dekomprimerer på serversiden, og lagrer data ukomprimert!

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