I just want to backup my Gentoo System, like a stage-X, so I can restore it when the system is broken, just with one command like
tar xvf gentoo-stage-x.tgz
So I found a script in the Gentoo forum
After some minor adjust, the script works as I want.
Actually, this script is really simple, the core command is:
cat ${list} | xargs tar zlcvf ${BKPDIR}/${type}.`date +%Y-%m-%d-%H%M`.${ext}
Just use the tar to create the package according to the directory list in sys.lst
#!/bin/sh # for FULL backups # this backs up the important stuffs listed in ${lists} to ${BKPDIR} # the lists *should* be in ${BKPDIR} and named <whatever>.lst # the resulting backups will be <whatever>.<timestamp>.tgz # # notes: # variables in CAPS are ok for you to set # change the other variables if you know what you're doing # you can get fancy in the lists... (think xargs *wink*) # assumes /boot is usually unmounted, and has an /etc/fstab entry # follow your security policy when setting perms on ${BKPDIR} # # written by razamatan # # DISCLAIMER: razamatan didn't write this if something goes wrong BKPDIR=/home/pjq/backup # where the backups go BOOT=boot #sys # list that has /boot NUMBKPS=3 # how many backups to keep if [ ! -d ${BKPDIR} ] ; then echo ${BKPDIR} is not a valid directory or is non-existant exit -1 fi lists=${BKPDIR}/*.lst ext=tgz for list in `ls ${lists}`; do type=`basename ${list} .lst` if [ ${type} = ${BOOT} ] ; then mount /boot ; fi echo cat ${list} | xargs tar zlcvf ${BKPDIR}/${type}.`date +%Y-%m-%d-%H%M`.${ext} # > /dev/null 2>&1 cat ${list} | xargs tar zlcvf ${BKPDIR}/${type}.`date +%Y-%m-%d-%H%M`.${ext} # > /dev/null 2>&1 if [ ${type} = ${BOOT} ] ; then umount /boot ; fi num=${NUMBKPS} for evict in `ls -t ${BKPDIR}/${type}.*.${ext}`; do if [ ${num} -le 0 ] ; then rm -f ${evict} else num=$((${num}-1)) ; fi done done
/bin /boot /root --exclude=/dev /etc /sbin /lib --exclude=/sys /lib32 /lib64 /usr --exclude=/usr/portage/distfiles --exclude=/usr/src/linux --exclude=/usr/portage /usr/src/linux/.config /var