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