#!/bin/bash # bkup_rpm.sh # backup the current list of rpms for precautionary rollback # refined: July 3, 2014 bkup_dir="/root/RPMBUP/" savenum=9 datestring=`date +%Y%m%d | tr '\n|\r' ' ' | sed 's/\s$//'` # create the backup directory if it doesn't already exist # if it does exist, do nothing mkdir -p $bkup_dir # to avoid first-run error on num_files=ls numbkups=`find $bkup_dir -type f | wc -l` if [ $numbkups != "0" ]; then num_files=`ls $bkup_dir*.tar.gz |wc -l` while [ $num_files -gt $savenum ] do deleteme=` ls -t $bkup_dir*.tar.gz |tail -n1` # echo "deleteme = $deleteme" rm $deleteme # reevaluate the value of $num_files remaining num_files=`ls $bkup_dir*.tar.gz |wc -l` done num_files=`ls $bkup_dir |grep chkconfig |wc -l` while [ $num_files -gt $savenum ] do deleteme=` ls -t ${bkup_dir}chkconfig_* |tail -n1` # echo "deleteme = $deleteme" rm $deleteme # reevaluate the value of $num_files remaining num_files=`ls $bkup_dir |grep chkconfig |wc -l` done fi extension='.tar' bkup_file="rpm$datestring$extension" cd /var/lib tar -cf $bkup_file rpm mv $bkup_file $bkup_dir gzip $bkup_dir$bkup_file chkfile="chkconfig_$datestring" # RedHat older than 5 can't handle these so use older style above # chkfile="chkconfig_" # chkfile+=$datestring /sbin/chkconfig --list > $bkup_dir$chkfile exit