Syncvar
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
syncvar
#!/bin/sh
#
# Copyright (c) 2007  Matt Simerson
# All rights reserved.
# 
# NOTE: this script runs early in the startup process, before 
# /usr is available. It requires that a statically compiled 
# version of rsync is installed in /bin/rsync. 
#
# PROVIDE: syncvar
# REQUIRE: mountcritlocal var
# KEYWORD: shutdown    # added per tom mazzotta
. /etc/rc.subr
name="syncvar"
rcvar=`set_rcvar`
command="/bin/rsync"
excludes="--exclude spool/ --exclude tmp/ --exclude empty/"
syncvar_enable=${syncvar_enable-"NO"}
syncvar_dir=${syncvar_dir-"/var.disk"}
start_cmd="syncvar_start"
stop_cmd="syncvar_stop"
load_rc_config $name
required_dirs="${syncvar_dir}"
syncvar_start () {
        echo "Syncing var from disk."
#       $command -a  $excludes $syncvar_dir/ /var/   # nice and quiet
        $command -av $excludes $syncvar_dir/ /var/   # noisy!
}
syncvar_stop () {
        echo "Syncing var to disk."
        more_excludes="--exclude run/ --exclude entropy/ --exclude supervise/"
        # remount our $syncvar_dir as r/w
        (  /sbin/mount -u -o rw $syncvar_dir  ||  # HD boot
           /sbin/mount -u -o rw /  ||             # CF boot
           ( echo "Failed to sync var to disk!" && exit 1 )
        )
        # just show us what it would do
#       $command -avn $excludes $more_excludes /var/ $syncvar_dir/
        # do the deed
        $command -av $excludes $more_excludes /var/ $syncvar_dir/
        # do it quietly
#       $command -a $excludes $more_excludes /var/ $syncvar_dir/
}
run_rc_command "$1"