ebalaskas.gr: abs4 Snap ...

Home Page | Index | Changes | Comments | Users | Registration | Σύνδεση  Συνθηματικό:  
 

abs4snap stands for: Another Bash Script For Snapshots


For: rpm-based distros


#!/bin/bash
# Evaggelos Balaskas, <ebalaskas AT ebalaskas DOT gr>, 20090122
DIR="/var/cache/rpmbased/rpmlist"
PATHS="/etc /usr/local/etc /boot"
BACKUP="backup"
PALIST="/bin/rpm -qa"
RSYNC="/usr/bin/rsync -ra"
SORT="/bin/sort"
MKDIR="/bin/mkdir -p"
DATE="/bin/date"
CP="/bin/cp -al "
MV="/bin/mv -f"
RM="/bin/rm -rf"
TOUCH="/bin/touch"
DAYS="10"
  
# Make Directory Structure
$MKDIR $DIR/`$DATE +%Y/%m/%d`
  
#Package List
$PALIST | $SORT > $DIR/`$DATE +%Y/%m/%d/pkglist_%H_%M`
  
#Rotation
if [ -d "$DIR/$BACKUP.$DAYS" ] ; then 
  $RM $DIR/$BACKUP.$DAYS
fi
  
for i in `seq $(expr $DAYS - 1 ) -1 1` ;do 
  if [ -d "$DIR/$BACKUP.$i" ]; then
    $MV $DIR/$BACKUP.$i $DIR/$BACKUP.$(expr $i + 1)
  fi
done
  
# Create Hard Link
if [ -d "$DIR/$BACKUP.0" ] ; then
  $CP $DIR/$BACKUP.0 $DIR/$BACKUP.1
fi
  
# Sychronization
for k in $PATHS; do
  $MKDIR $DIR/$BACKUP.0$k/
  $RSYNC --delete $k/ $DIR/$BACKUP.0$k
  done
  
# TimeStamp
$TOUCH $DIR/$BACKUP.0




For Archlinux distro:


#!/bin/bash
# Evaggelos Balaskas, <ebalaskas AT ebalaskas DOT gr>, 20090122
DIR="/var/cache/pacman/pkglist"
PATHS="/etc /usr/local/etc /boot"
BACKUP="backup"
PACMAN="/usr/bin/pacman -Qqe"
RSYNC="/usr/bin/rsync -ra"
MKDIR="/bin/mkdir -p"
DATE="/bin/date"
CP="/bin/cp -al "
MV="/bin/mv -f"
RM="/bin/rm -rf"
TOUCH="/bin/touch"
DAYS="10"
  
# Make Directory Structure
$MKDIR $DIR/`$DATE +%Y/%m/%d`
  
#Package List
$PACMAN > $DIR/`$DATE +%Y/%m/%d/pkglist_%H_%M`
  
#Rotation
if [ -d "$DIR/$BACKUP.$DAYS" ] ; then 
  $RM $DIR/$BACKUP.$DAYS
fi
  
for i in `seq $(expr $DAYS - 1 ) -1 1` ;do 
  if [ -d "$DIR/$BACKUP.$i" ]; then
    $MV $DIR/$BACKUP.$i $DIR/$BACKUP.$(expr $i + 1)
  fi
done
  
# Create Hard Link
if [ -d "$DIR/$BACKUP.0" ] ; then
  $CP $DIR/$BACKUP.0 $DIR/$BACKUP.1
fi
  
# Sychronization
for k in $PATHS; do
  $MKDIR $DIR/$BACKUP.0$k/
  $RSYNC --delete $k/ $DIR/$BACKUP.0$k
done
  
# TimeStamp
$TOUCH $DIR/$BACKUP.0


 
Χρόνος: 0.024 s
Μνήμη: 1.899 Mb

Valid XHTML 1.0 Transitional