Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # cache_clean
- # Save in /usr/local/bin and chmod 755 /usr/local/bin/cache_clean
- # This script deletes all old duplicate rpms from an rpm cache.
- # Run as root (su) :-
- # cache_clean
- ###############################################################################
- # CONFIGURATION :- Edit as needed
- # Location of rpm cache to clean
- scan_folder=/var/cache/urpmi/rpms
- # Number of versions to be kept in the cache (e.g. 2 = latest and one previous.)
- VERSIONS_TO_KEEP=2
- ###############################################################################
- # Log file cleared at each run
- pathtolog=/home/"$USER"/cache_clean.log
- cacheclean()
- {
- scan_folder=$1
- dupe=0
- last_non_ver_name=
- echo $(date) > $pathtolog
- echo "Checking cache for old packages. Please wait..."
- file_array=($(ls --sort version -r $scan_folder |grep ".rpm" |tr '\n' ' '))
- for full_name in ${file_array[@]};do
- non_ver_name=$( rpm -qp --queryformat %{Name} $scan_folder"/"$full_name )
- if [ "$last_non_ver_name" == "$non_ver_name" ];then
- let dupe=$dupe+1
- if [ "$dupe" -ge "$VERSIONS_TO_KEEP" ];then
- rm $scan_folder"/"$full_name -f
- echo "Deleted "$full_name | tee -a $pathtolog
- else
- echo "Keeping "$full_name | tee -a $pathtolog
- fi
- else
- dupe=0
- echo "Keeping "$full_name | tee -a $pathtolog
- fi
- last_non_ver_name=$non_ver_name
- done
- }
- cacheclean $scan_folder
- # End of cache_clean
Add Comment
Please, Sign In to add comment