Jail mergemaster script
From TykWiki
Jump to navigationJump to search
#! /bin/sh if [ ! -e /usr/local/bin/pcregrep ]; then echo "$(basename $0) requires pcregrep" exit 2 fi MM_RC=0 if [ -e /root/.mergemasterrc ]; then MM_RC=1 mv /root/.mergemasterrc /root/.mergemasterrc.old fi for jailroot in $(jls -n | pcregrep -o1 "path=(\S+)"); do if [ -n "${jailroot}" -a -d "${jailroot}" ]; then echo "processing ${jailroot}:" cat <<EOF > /root/.mergemasterrc AUTO_INSTALL=yes AUTO_UPGRADE=yes FREEBSD_ID=yes PRESERVE_FILES=yes PRESERVE_FILES_DIR=/var/tmp/mergemaster/preserved-files-$(basename ${jailroot})-$(date +%y%m%d-%H%M%S) IGNORE_FILES="/boot/device.hints /etc/motd" EOF if [ -d "${jailroot}/etc.bak" ]; then rm -rfI "${jailroot}/etc.bak" fi cp -pRP "${jailroot}/etc" "${jailroot}/etc.bak" if [ ! -e ${jailroot}/var/db/mergemaster.mtree ]; then rm -rfI ${jailroot}/etc/rc.d/* fi mergemaster -D "${jailroot}" else echo "${jailroot} doesn't exist" fi sleep 2 done if [ ${MM_RC} -eq 1 ]; then mv /root/.mergemasterrc.old /root/.mergemasterrc else rm /root/.mergemasterrc fi