Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Bash by Ayromos ( 14 years ago )
#!/bin/bash

test $UID == 0 || killall recup.sh | echo "Passer en mode root"

#test -d /home/sauvegarde || mkdir /home/sauvegarde

dpkg -l | sed '/^ii.*/ ! d' | awk '{ print $2"="$3 }' > /tmp/up.tmp
date=$(date +%F-%H.%M.%S)

if [ ! -z "$(find /home/sauvegarde/ -iname init-\* -print)" ] ;then
 fin="$(ls -l /home/sauvegarde/ | grep init | awk '{ print $NF }' | tail -n 1)"
 var=0
 ls -l /home/sauvegarde/ | grep init |  awk '{ print $NF }' |
 while read recent ;do
  for i in $(ls -l /home/sauvegarde/ | grep init | awk '{ print $NF }') ;do
   if [ /home/sauvegarde/"$recent" -ot /home/sauvegarde/"$i" ]; then
    break
   elif [ ! -z $(echo $i | grep $fin) ]; then 
    echo "$recent" > /tmp/fichier.tmp
    var=1
   fi
  done
  if [ $var -eq 1 ];then
   break
  fi
 done
 var=0
 fichier=$(cat /tmp/fichier.tmp)
 cp /home/sauvegarde/$fichier /tmp/init.tmp
 echo -e "Nouveaux:\nUpdates:\nOutdates:\nRemoved:" > /home/sauvegarde/$date
 mkdir /home/sauvegarde/deb-$date
 mkdir /home/sauvegarde/deb-$date/binary
 while read package; do
  for i in {package.manquant,init};do
   echo $package >> /home/sauvegarde/$i-$date
  done
  if [ -z "$(grep ^$package$ /home/sauvegarde/"$(cat /tmp/fichier.tmp)")" ];then
   echo 1 > /tmp/update.tmp
   ls /var/lib/apt/lists/ | grep .*Packages$ | 
   while read mirrors;do
    if [ ! -z "$(cat /var/lib/apt/lists/$mirrors | grep Filename.*/$(echo $package | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g'))" ];then
     wget "$(echo -n "http://$mirrors" | sed 's/\(.*\)dists.*/\1/g' | sed 's/_/\//g'
     cat /var/lib/apt/lists/$mirrors | grep Filename.*/"$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g')" | awk -F ": " '{ print $2 }')" -O /home/sauvegarde/deb-$date/binary/"$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g')"_"$(cat /var/lib/apt/lists/$mirrors | grep Filename.*/$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g') | sed 's/.*_\(.*\)\.deb/\1/g')".deb
     sed -i "/^$package/d" /home/sauvegarde/package.manquant-$date
     sed -i '/^$/d' /home/sauvegarde/package.manquant-$date
     break
    fi
   done
   if [ -z "$(sed "/^$(echo $package | awk -F "=" '{ print $1 }')=/! d " /home/sauvegarde/"$(cat /tmp/fichier.tmp)")" ];then
    sed -i "s/\(Nouveaux:.*\)/\1 $package/g" /home/sauvegarde/$date
   elif [ -z "$(grep ^$package$ /home/sauvegarde/"$(cat /tmp/fichier.tmp)")" ];then
    sed -i "s/\(Updates:.*\)/\1 $package/g" /home/sauvegarde/$date
    sed -i "s/\(Outdates:.*\)/\1 $(sed "/^$(echo $package | sed "s/\(.*=\).*/\1/g")/! d" /home/sauvegarde/"$(cat /tmp/fichier.tmp)")/g" /home/sauvegarde/$date
   fi
   elif [ ! -z "$(grep ^$package$ /home/sauvegarde/"$(cat /tmp/fichier.tmp)")" ];then
   cp /home/sauvegarde/deb-$(cat /tmp/fichier.tmp | sed 's/init-\(.*\)/\1/g')/binary/"$(echo "$package" | awk -F "=" '{ print $1 }')"* /home/sauvegarde/deb-$date/binary/
   sed -i "/^$package/d" /home/sauvegarde/package.manquant-$date
   sed -i '/^$/d' /home/sauvegarde/package.manquant-$date
  fi
 sed -i "/$package/d" /tmp/init.tmp
 done < /tmp/up.tmp
 sed -i '/^$/d' /tmp/init.tmp
 fichier=$(cat /tmp/init.tmp)
 sed -i "s/\(Removed:\)/\1 $(echo $fichier)/g" /home/sauvegarde/$date
 fichier=$(cat /home/sauvegarde/init-$date)
 echo $fichier > /home/sauvegarde/Latest-$date
 if [ -e /home/sauvegarde/$(cat /tmp/fichier.tmp | sed 's/init-\(.*\)/\1/g') ] && [ -e /tmp/update.tmp ];then
  dpkg-scanpackages /home/sauvegarde/deb-$date/binary /dev/null | gzip -9c > /home/sauvegarde/deb-$date/binary/Packages.gz
  rm /home/sauvegarde/recup
  ln -s /home/sauvegarde/deb-$(cat /tmp/fichier.tmp | sed 's/init-\(.*\)/\1/g') /home/sauvegarde/recup
  echo "Package manquant:"
  cat /home/sauvegarde/package.manquant-$date
  cat /home/sauvegarde/$date
  rm /tmp/update.tmp
 elif [ ! -e /home/sauvegarde/$(cat /tmp/fichier.tmp | sed 's/init-\(.*\)/\1/g') ] && [ -e /tmp/update.tmp ];then
  dpkg-scanpackages /home/sauvegarde/deb-$date/binary /dev/null | gzip -9c > /home/sauvegarde/deb-$date/binary/Packages.gz
  echo "Package manquant:"
  cat /home/sauvegarde/package.manquant-$date
  cat /home/sauvegarde/$date
  rm /tmp/update.tmp
 else 
  echo -e "Aucun changement\nSuppression des données..."
  rm -r /home/sauvegarde/*$date*
 fi
rm /tmp/up.tmp
rm /tmp/fichier.tmp
else
 echo "stop"
 sleep 5
 cp /tmp/up.tmp /home/sauvegarde/init-$date
 fichier=$(cat /home/sauvegarde/init-$date) 
 echo $fichier > /home/sauvegarde/Latest-$date
 mkdir /home/sauvegarde/deb-$date
 mkdir /home/sauvegarde/deb-$date/binary
 while read package; do
   echo "$package" >> /home/sauvegarde/package.manquant-$date
   ls /var/lib/apt/lists/ | grep .*Packages$ | 
   while read mirrors;do
    if [ ! -z "$(cat /var/lib/apt/lists/$mirrors | grep Filename.*/$(echo $package | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g'))" ];then
     wget "$(echo -n "http://$mirrors" | sed 's/\(.*\)dists.*/\1/g' | sed 's/_/\//g'
     cat /var/lib/apt/lists/$mirrors | grep Filename.*/"$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g')" | awk -F ": " '{ print $2 }')" -O /home/sauvegarde/deb-$date/binary/"$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g')"_"$(cat /var/lib/apt/lists/$mirrors | grep Filename.*/$(echo "$package" | sed 's/\(.*=\)[0-9]:\(.*\)/\1\2/g' | sed 's/=/_/g') | sed 's/.*_\(.*\)\.deb/\1/g')".deb
     sed -i "/$package/d" /home/sauvegarde/package.manquant-$date
     sed -i '/^$/d' /home/sauvegarde/package.manquant-$date
     break
    fi
   done
 done < /home/sauvegarde/init-$date
 dpkg-scanpackages /home/sauvegarde/deb-$date/binary /dev/null | gzip -9c > /home/sauvegarde/deb-$date/binary/Packages.gz
 ln -s /home/sauvegarde/deb-$date /home/sauvegarde/recup
 rm /tmp/up.tmp
fi

 

Revise this Paste

Your Name: Code Language: