Files kopieren tot loopbackfile vol is, nieuwste files eerst

Pagina: 1
Acties:

  • Paul
  • Registratie: September 2000
  • Laatst online: 17:07
Ik wil hier graag wekelijks een backup maken van een aantal zaken. Dit gaat samen naar 1 iso-file om dan via Samba op een windows-pc gebrand te worden.

Op zich passen vrijwel alle belangrijke dingen ruim op de cd, alleen een boekhoudpakket hier maakt iedere keer dat je in dat programma de backup-optie gebruikt nieuwe bestanden aan van 6 mb per stuk.
Na een tijdje past dat dus lang niet allemaal meer op 1 cd... Echter, de oude bestanden hoeven niet iedere keer gebackupped te worden.

Nu zoek ik dus een manier om net zolang te kopieren tot of de files op zijn of de schijf vol is, en beginnend met de nieuwste files.
Wie helpt?

Bij tar kan ik alleen een optie vinden om files nieuwer dan... te kopieren (nog afgezien van het feit dat het kleiner wordt als je het door gzip haalt) en cp heeft er helemaal geen optie voor.

Zoeken op cp, tar, backup, cd, iso etc levert echt heel veel info op, maar niet wat ik zoek.

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
#!/bin/sh

# Variabelen
ISOFILE="/export/backup/backup_`date +%d-%m-%y`.iso"
MOUNTPOINT="/mnt/backup"

# isofile maken, filesystem maken en mounten
dd if=/dev/zero of=$ISOFILE bs=1M count=699
# iso fs aanmaken --> man mkisofs :P
mount -o loop -t iso9660 $ISOFILE $MOUNTPOINT

# configuratie, kernel en andere belangrijke meuk
mkdir $MOUNTPOINT/system
tar -czf $MOUNTPOINT/system/etc.tgz /etc/
tar -czf $MOUNTPOINT/system/sysfiles.tgz /export/systeemfiles/

# samba mounts backuppen
mkdir $MOUNTPOINT/data
tar -czf $MOUNTPOINT/data/dbase.tgz /export/shares/dbase/
tar -czf $MOUNTPOINT/data/files.tgz /export/shares/files/
tar -czf $MOUNTPOINT/data/netlogon.tgz /export/shares/netlogon/
tar -czf $MOUNTPOINT/data/netscape.tgz /export/shares/netscape/

# manier vinden om iso af te vullen tot hij vol is

# iso umounten en loopback vrijgeven
umount -d $MOUNTPOINT

Edit: Oh geweldig: html code :P quotejes en greater-than :P

[ Voor 3% gewijzigd door Paul op 27-10-2003 16:05 ]

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Verwijderd

Waarom schrijf je dan niet een scriptje wat de backups van de backups van het boekhoud pakket weggooit voordat je ze in de iso propt?

  • Paul
  • Registratie: September 2000
  • Laatst online: 17:07
Ik denk dat ik die gedachtensprong niet helemaal volg ??
Als ik iets verwijder voordat ik het backup, dan heeft die backup ook niet veel zin meer?

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Je kan best (zoals je al aangeeft) een LIFO maken, maar ik zou het niet rechtstreeks met cp of tar doen.

Doe het als volgt :

(situatie : er zijn GEEN boekhoudbackups & het programma maakt een setje aan)
Je moved de files naar een andere directory
Daar tar je ze.
De Tar file rename je naar iets met de datum in in de vorm van %year%month%day.
(voorbeeld backup20031027.tar).
Die file move je dan weer naar een andere directory.
In die directory check je hoeveel files er zijn, als er meer dan dan 10 : {
Je maakt in een (shellvariabele) een gesorteerde lijst (met sort), die komen automatisch op datum te staan.
Met tail -n 1 heb je de oudste file te pakken.
Verwijderen.

En voila, je hebt een LIFO :)

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 29-04 12:25

deadinspace

The what goes where now?

Als je een lijst files hebt, met de nieuwsten bovenaan, dan kun je gewoon bovenaan beginnen, en doorlopen tot het niet meer past. Ik dacht eigenlijk dat find een sort-on-time optie had, maar dat viel wat tegen, dus... Bring out the botte shellscripts :P
C:
1
find -printf '%AY-%Am-%Ad %AH:%AM:%AS %p\n' | sort | tac | sed 's/^....-..-.. ..:..:.. //'

Het kan misschien wat eleganter, maar ik zou zo snel niet weten hoe... find is de tool bij uitstek hiervoor, maar die heeft dus geen optie om op tijd te sorteren.

[ Voor 6% gewijzigd door deadinspace op 27-10-2003 22:49 ]


  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Grrr, ben ik net klaar met een voorbeeld scriptje om bestanden te sorteren is deadinspace me voor :(

Maar de mijne doet tenminste een reverse sort en houdt rekening met de cd grootte (sort of) :)

C:
1
2
find -type f -printf "%TY%Tj%TH%TM%TS:%s:%p\n" | sort -r | \
gawk -F: 'BEGIN { n = 650*1024 } { s = int($2/1024)+1; n = n - s; if (n >= 0) printf "%s\n", $3 }'


Het gawk scriptje houdt bij hoeveel schrijf ruimte er al gebruikt is en print dus alleen de bestanden die op de cd passen (moet wel nog wat verbeterd worden, geen ceil(), en cd's werken met 2048 bytes blocken dacht ik). Overigens mogen je bestandsnamen geen ':' bevatten.

[ Voor 6% gewijzigd door Buffy op 27-10-2003 21:40 ]

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 29-04 12:25

deadinspace

The what goes where now?

Dawns_sister schreef op 27 October 2003 @ 18:05:
Grrr, ben ik net klaar met een voorbeeld scriptje om bestanden te sorteren is deadinspace me voor :(
Muahahahaha! })
Maar de mijne doet tenminste een reverse sort
Ik gooi hem gewoon door tac ;)
en houdt rekening met de cd grootte (sort of) :)
Mja, hij wilde het toch naar een loopback-mount doen? Die dingen hebben een fixed grootte, en op een gegeven moment is het vol. Wat nou op grootte letten? :+

  • Paul
  • Registratie: September 2000
  • Laatst online: 17:07
Ik maar denken waarom matched dat patroon niet, maar die n bij printf moet een \n zijn :)

C:
1
find -printf '%AY-%Am-%Ad %AH:%AM:%AS %p\n' | sort -r | sed 's/^....-..-.. ..:..:.. //'


_O_ Hier kom ik al een heel stuk verder mee, sterker nog, volgens mij is hem dat (okee, nog even in een for-loop gieten en ook daadwerkelijk kopieren maar dat mag de pret niet drukken :P ) :)

[ Voor 4% gewijzigd door Paul op 27-10-2003 20:29 ]

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Ik zie overigens dat het voorbeeld van deadinspace %A gebruikt in de find format. Dit is echter de access tijd van het bestand en die verandert ook als het bestand alleen maar gelezen wordt. Beter is om de %C (change) of %T (modified) tijden te gebruiken.

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 29-04 12:25

deadinspace

The what goes where now?

Paul Nieuwkamp schreef op 27 oktober 2003 @ 20:28:
Ik maar denken waarom matched dat patroon niet, maar die n bij printf moet een \n zijn :)
Hmm, die \ stond er dus wel toen ik hem testte hè (nee, zulke oneliners spuug ik niet in een keer foutloos uit :P ).

Ik heb het even aangepast iig :)
Dawns_sister schreef op 27 October 2003 @ 22:16:
Ik zie overigens dat het voorbeeld van deadinspace %A gebruikt in de find format. Dit is echter de access tijd van het bestand en die verandert ook als het bestand alleen maar gelezen wordt. Beter is om de %C (change) of %T (modified) tijden te gebruiken.
Hmm, dat klopt ja. Ik heb iets te snel door de manpage gelezen dus... De manpage rept ook niet over atime en ctime, maar alleen over iets generiekere beschrijvingen.

Bovendien werkte het hier gewoon, maarja, mijn filesystem is gemount met noatime, dus dan valt die fout niet zo snel op. ;)
Pagina: 1