Backup Script: FTP; incremental; full; daily

Pagina: 1
Acties:
  • 690 views sinds 30-01-2008
  • Reageer

  • Gosu
  • Registratie: December 2001
  • Laatst online: 24-06-2022

Gosu

UltraBook

Topicstarter
Voor degegen die een leuk backup script zoeken, bij deze. Na enig geknutsel en overwinnen van wat eigenaardigheden (geen ftp script in if-block enzv.) is dit het eindresultaat.

Samenvatting:
6 dagen in de week wordt er een incremental backup gemaakt van een samba mount en op de server opgeslagen. Op zondag wordt er een full backup gemaakt en geupload naar een ftp.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#
#!/bin/bash
#
# Creates Backup of REMOTE
#
# Author: Björn Harink
#
set $(date '+ %Y %m %d %a')
TEMP="/backup/temp/"
REMOTE="/mnt/share/"
LIST="/tmp/backlist_$$.txt"
FULL=$(echo share_data_full_$1-$2-$3.tgz)
INC=$(echo share_data_diff_$1-$2-$3.tgz)
LB=$(more /backup/lastbackup)
LBFILE="/backup/lastbackup"
#
echo
echo "###################"
echo "#                                          #"
echo "# Backup started!                #"
echo "#                                          #"
echo "###################"
echo
echo "->Creating mounts."
echo
#
mount -t smbfs //host/share /mnt/share -o username=administrator,password=******
#
echo
echo "->Backing up..."
echo
#
if test "$4" = "Mon" ; then
        if test "$FULL" = "$LB"; then
                echo "#############################"
                echo "#                                                                   #"
                echo "# Already made full backup!                          #"
                echo "#         Exiting!                                               #"
                echo "#                                                                   #"
                echo "#############################"
                umount /mnt/share
                exit 0
        fi
        echo "->...making full backup..."
        cp -r $REMOTE $TEMP
        tar cfz "/backup/share/$FULL" $TEMP
        echo "->...uploading full backup..."
        cd /backup/share
        echo "->...upload complete."
        rm -f -r $TEMP*
        rm -f /backup/share/$LB
        rm -f /backup/share/paradocs_data_diff*
        bash /scripts/ftp1
        echo $FULL >$LBFILE
        bash /scripts/ftp2
else
        echo
        echo "->...making incremental backup."
        echo
        find $REMOTE -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST
#       cp "$LIST" $TEMP
        tar cfzT "/backup/share/$INC" "$LIST"
#       rm -f -r $TEMP*
        rm -f "$LIST"
fi
#
# echo
# echo "->Backing up databases."
# echo
# mysqldump -u root --password=****** --opt mydb > "/backup/databases/shareforum_$6-$2-$3.sql"
# gzip "/mnt/backup/database/mydb_$1-$2-$3.sql"
#
echo
echo "->Finishing up."
echo
echo "->Unmounting dirs."
umount /mnt/share
echo
echo "####################"
echo "#                                             #"
echo "# Backup finished!                  #"
echo "#                                             #"
echo "####################"
echo


En de bijbehorende ftp scripts:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
DEL=$(more /backup/lastbackup)
ftp -n ftp.nl <<**
user anom ******
dele $DEL
bye
**

UP=$(more /backup/lastbackup)
ftp -n ftp.nl <<**
user anom *****
put $UP
bye
**


Lever gelieve zo veel mogelijk commentaar, zodat ik dit script tot in de puntjes kan verbeteren.

MVG Björn

Del XPS 13


Verwijderd

dit is cool ik wou dit net gaan schrijven _/-\o_ en dan bedoel ik ook nu zeg maar

echt waar dit is erg grappig.

wat ik op de remote in gedachten had is als de ftp sessie heeft plaats gevonden deze gelijk van de ftp te moven.
dus een ftp.ok neerzetten op zijn laatst en daar triggerd een scriptje op die de bende gelijk moved naar een veiligere directory.

immers zijn ftp servers niet altijd veilig

[ Voor 70% gewijzigd door Verwijderd op 07-09-2003 22:07 ]


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Er zijn een aantal dingen die ik zelf meestal ook als laatste doe:
- check de aanroep van het scriptje op de aanwezigheid/juistheid van parameters
en geeft een "usage: bla bla" melding als het niet klopt.
- probeer passwords in ".netrc" files onder te brengen
- misschien moet je checken of er een file ge-upload wordt terwijl je een backup maakt. om te voorkomen dat je files gedeeltelijk backupped.
- Als je het echt 1337 wilt maken vang je de exit code van elk commando af, en
exit je met een mooie foutmelding als er ergens iets niet goed gaat. Je kunt ook denken aan
het controleren of bepaalde files bestaan, checks inbouwen voor benodigde filesystem space etc.
- Meer commentaar, er kan nooit genoeg commentaar in een script staan. Zou ik zelf ook eens moeten doen, als ik soms oude scriptjes terug zie, vraag ik me weleens af waarom
bepaalde zaken op een bepaalde manier gedaan worden ....... :P

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Verwijderd

vergeet de lock file niet best belangrijk

  • Gosu
  • Registratie: December 2001
  • Laatst online: 24-06-2022

Gosu

UltraBook

Topicstarter
Heel erg bedankt voor de commentaren. passwords in .netrc files onder brengen is wat lastig als je dat vanuit root runt (volgens mij)...

Lock file? Wat wordt hiermee bedoelt?

Del XPS 13


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:39
Bestanden kunnen in gebruik zijn, of in gebruik genomen worden tijdens het back-uppen. Door de file te locken ben jij, tot je unlocked de enige gebruiker van de file. Dat zorgt voor een hogere data integriteit.

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Vraagje waarom incrementals?
Klein tipje ik heb laats ook (jaja hot item) een script gemaakt om een backup te maken en via netwerk ergens neer te zetten, maar vanwege de mogelijke hostile environment waar je backup in terecht komt had ik de file ge-encrypt met gpg. OK het wachtwoord staat wel in je script maar als die file eenmaal ergens is geupload kan iemand hem niet zomaar effe uitpakken en je data bekijken >:)

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 18:08
Ik had laatst ook zo'n scriptje gemaakt om behalve naar een slome DDS3 tapestreamer, ook naar een NT4 server te backuppen via SMB. So far so good: elke dag lukte de incremental backup... elke week mislukte de full backup: filesize limit van 2GB voor tar :X

Verwijderd

lock file zorgt er ook voor dat je scripie niet gaat loopen zeg maar nr1 van linux vastlopers.
iedereen maakt fouten dus bouw altijd in als het fout gaat dat het niet je systeem hangt.

  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 23-04 13:06
filesize limit van 2GB voor tar
en

code:
1
-rw-r--r--    1 root     root     2268416000 Apr 26 17:45 17.tar


Ik dacht dat gzip niet groter kon als 2 gb en dat je dan op bzip2 was aangewezen (mijn ervarig iig)

Maar leuk scripje imho. Ik ga het nog ff goed bekijken, en misschien ook nog wel voor bepaalde doeleinden gebruiken!

  • Gosu
  • Registratie: December 2001
  • Laatst online: 24-06-2022

Gosu

UltraBook

Topicstarter
Hoe kun je de files op een samba share locken? En vervolgens weer unlocken?!

Del XPS 13


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Gosu schreef op 09 September 2003 @ 11:56:
Hoe kun je de files op een samba share locken? En vervolgens weer unlocken?!
Dat moet je zelf regelen , bijv. in je ftp scriptjes opnemen dat:
- je als eerste een filetje upload, met een grootte van 0, waar je aan kunt
zien dat er een upload scriptje draait, wat je daarna weer weghaalt.
- checkt dat dat filetje er niet staat voordat je begint.

BTW, waarom kopieer je eerst alles voordat je een tarfile maakt ?
Kun je niet gewoon de tarfile maken ?

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 23-04 13:06
Gosu schreef op 09 September 2003 @ 11:56:
Hoe kun je de files op een samba share locken? En vervolgens weer unlocken?!
Hij bedoelt hoe je een file gelocked krijgt zodat een andere Windows gebruiker hem niet kan benaderen, niet de lock file of het backupscript wel / niet draait.
Pagina: 1