J'ai réalisé un petit script pour sauvegarder mon répertoire: /var/cache/apt/archives/ il est en perl. J'ai pensé que cela pouvait vous intéresser. il s'agit de la version version 0.5. Il est donc nécessaire de modifier la ligne $rep_sauv. Il s'agit du répertoire de sauvegarde. et de la ligne my $nom Il s'agit du non du CD une fois gravé. Pour terminer, un petit apt-get autoclean sauv_package et il ne vous reste plus qu'a graver le répertoire de sauvegarde sur un CD. Voici le script, qu'il vous suffit de recopier et de copier dans /usr/local/bin/sauv_package ******************************Début Script***************** #!/usr/bin/perl -w # Création par Zuthos 2004 # zuthos@laposte.net # sauv_package # version 0.5 use strict; use Getopt::Long; # module pour accepter les options use File::Copy; # module copie de fichier my $rep="/var/cache/apt/archives/"; # repertoire contenant les packages my $fichier; my $rep_sauv="/home/USER/apt"; # repertoire de sauvegarde my $fich_package="$rep_sauv/Packages"; my $fich_ovver="$rep_sauv/ovver.cache2"; my $fich_ovver_b="$rep_sauv/ovver.cache"; # utile pour créer le fichier package my $nom="Debian GNU/Linux 3.0 r0 \"Woody\" - UnOfficial i386 Binary-8 (20040717)"; # nom du futur CD my $stat=0; my @nouv=""; # Création de l'arborescence de sauvegarde mkdir $rep_sauv,0777 ; mkdir "$rep_sauv/.disk",0777; # création du fichier info du CD avec le nom du CD open(INFO,">$rep_sauv/.disk/info"); print INFO $nom ; close (INFO); # recuperation de la liste des package opendir(AR,"$rep") || die "Impossible d'ouvrir $rep : $!"; my @fichiers=grep(/\.deb/i, readdir AR); close (AR); # copie de tous les fichiers vers le repertoire de destination # et préparation du fichier de control Package foreach $fichier (@fichiers) { copy("$rep$fichier" , "$rep_sauv/$fichier") || warn "Impossible de copier le fichier : $!"; system("dpkg-deb -I $rep_sauv/$fichier | grep Package: >> $fich_ovver"); system("dpkg-deb -I >> $rep_sauv/$fichier | grep Priority: >> $fich_ovver"); system("dpkg-deb -I $rep_sauv/$fichier | grep Section: >> $fich_ovver"); print "$fichier : copié\n"; } ##################Création du fichier Ovver open(FICHOVVER,"$fich_ovver"); open(FICHOVVERB,">$fich_ovver_b"); while(<FICHOVVER>) { if(m/Package:/) { $_=substr($_,10,-1); print FICHOVVERB "$_ " ; } if(m/Priority:/) { $_=substr($_,11,-1); print FICHOVVERB "$_ " ; } if(m/Section:/) { $_=substr($_,10); print FICHOVVERB $_ ; } } close(FICHOVVERB); close(FICHOVVER); #############Création du fichier Package system("dpkg-scanpackages $rep_sauv/ $fich_ovver > $fich_package"); system("gzip -c $fich_package > $fich_package.gz"); ******************************Début Script***************** Voila, en espérant que cela sera utile. Bien entendu, vous pouvez modifier et améliorer ce script. Pour info, j'ai prévu que la version 1.0 permettent de modifier par ligne de commande le non du CD ... -- "Combattre pour la paix, c'est comme niquer pour la chasteté." Slogan non violent.
Attachment:
pgp9DV4emZyn_.pgp
Description: PGP signature