Ho trovato la soluzione, magari a qualcuno interessa. Obiettivo: backuppare il sistema su una partizione separata /backup escludendo i file più grossi di X megabytes.
In backup ho creato un file approssimativamente della dimensione di un DVD: $ dd if=/dev/zero of=/backup/data bs=500M count=9 Creo un filesystem ext2 NEL file data: $ mkfs.ext2 -F /backup/data Creo una directory dove montare data: $ mkdir /backup/data Eseguo questo script: ----------------------------------- #!/bin/bash echo -n "Cleaning..." apt-get clean >/dev/null 2>&1 apt-get autoclean >/dev/null 2>&1 echo "ok" echo -n "Backup of backup..." cp -al data data.old echo "ok" echo -n "Mounting..." mount -t ext2 -o loop /backup/data /backup/mnt echo "ok" echo -n "Generating exclude list..." /backup/gex.pl /home /backup/exlist.txt echo "ok" echo -n "Mounting data file..." mount -t ext2 -o loop /backup/data /backup/mnt echo "ok" echo -n "Backupping..." rsync -a --delete --exclude-from=/backup/exlist.txt /home /bin /boot /etc /initrd /lib /media /opt /root /sbin /usr /var /backup/deb s /backup/mnt echo "ok" echo -n "Sync..." sync echo "ok" echo -n "Umount..." umount /backup/data echo "ok" ------------------------------------- Lo script perl gex.pl serve a generare un file che contiene la lista dei file da escludere, da passare a rsync: ------------------------------------- #!/usr/bin/perl $M = 1024*1024; $MAXSIZE = 5*$M; use File::Find; $path = $ARGV[0]; $efile = $ARGV[1]; open(EXX,">".$efile) or die $!; find(\&process,$path); close(EXX); sub process { my $fn = $File::Find::name; if(! -d $fn) { my $sz = (stat($fn))[7]; if($sz > $MAXSIZE) { $fn =~ s/\[/\\\[/g; $fn =~ s/\]/\\\]/g; print EXX $fn."\n"; } } } ------------------- Le due espressioni regolari servono per "escapare" i caratteri [ e ] che nell'exclude danno fastidio (a proposito quali sono gli altri caratteri cattivi?) Alla fine del processo ho il file data che contiene "l'immagine" del mio sistema pronta per essere masterizzata su un dvd. In data.old ho il vecchio backup, in caso mi servissero file che ho cancellato tra un backup e l'altro. Ora non mi rimane che scoprire come masterizzare il file data su un dvd a riga di comando (fin'ora ho utilizzato solo k3b). Ho letto da qualche parte che è possibile masterizzare direttamente in ext2, senza prima creare un file iso, ma ancora non ho idea di come si fa... Una volta fatto quest'ultimo passo lascerò un dvd riscrivibile nel masterizzatore, metterò tutto in cron e dormirò tranquillo... PS: tornando alla questione del fare tutto "al volo" utilizzando i classici strumenti GNU, sarebbe stato ottimo avere l'opzione di test sulla size che ha find implementata in rsync... :-) -- PicoStreamer - the real WEB live streaming software vinz486.com