From owner-freebsd-questions@FreeBSD.ORG Mon Apr 7 14:39:40 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0C3A106566B for ; Mon, 7 Apr 2008 14:39:40 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from snoogles.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 4B57F8FC19 for ; Mon, 7 Apr 2008 14:39:40 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from localhost (localhost [127.0.0.1]) by snoogles.rachie.is-a-geek.net (Postfix) with ESMTP id 46E751CC91; Mon, 7 Apr 2008 06:39:39 -0800 (AKDT) From: Mel To: freebsd-questions@freebsd.org Date: Mon, 7 Apr 2008 16:39:29 +0200 User-Agent: KMail/1.9.7 References: <4E73E577666CE823A7212C54@utd65257.utdallas.edu> In-Reply-To: <4E73E577666CE823A7212C54@utd65257.utdallas.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200804071639.35091.fbsd.questions@rachie.is-a-geek.net> Cc: Paul Schmehl Subject: Re: Remote backups using ssh and dump X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Apr 2008 14:39:40 -0000 On Friday 04 April 2008 19:59:27 Paul Schmehl wrote: > Has anyone done this? /usr/local/etc/periodic/daily/201.backup-disks: #!/bin/sh # vim: ts=4 sw=4 noet ai # # The following tunables are supported: # daily_backup_disks_enable (bool): # Turn backup on/off. # Default: Off # daily_backup_disks_mounts (list): # The mount points to backup daily. # Default: / /var /home /usr # daily_backup_disks_compress_local (bool): # Compress the backup on the local machine. # Default: Compress on receiving machine. # daily_backup_disks_compressor (program path): # The compress program to use. # Default: /usr/bin/bzip2 # daily_backup_disks_ext (string): # The extension to use for the filename. # Default: bz2 # daily_backup_disks_islocal (bool): # If this is a backup to a local disk. # Default: NO # daily_backup_disks_host (hostname): # Hostname to backup to. # Default: backup # daily_backup_disks_machid (string): # Machine id of this machine, used as prefix on backup files. # Default: `hostname -s` # daily_backup_disks_transporter (program path): # Program used to transport the backup. Arguments must be compatible with # ssh(1). # Default: /usr/bin/ssh # daily_backup_disks_backuproot (path): # Path to the directory where backups are stored on the receiving machine. # Default: /backup if [ -r /etc/defaults/periodic.conf ] then . /etc/defaults/periodic.conf source_periodic_confs fi # Set defaults daily_backup_disks_compress_local=${daily_backup_disks_compress_local:-"NO"} daily_backup_disks_mounts=${daily_backup_disks_mounts:-"/ /var /home /usr"} daily_backup_disks_compressor=${daily_backup_disks_compressor:-"/usr/bin/bzip2"} daily_backup_disks_ext=${daily_backup_disks_ext:="bz2"} daily_backup_disks_islocal=${daily_backup_disks_islocal:="NO"} daily_backup_disks_hostname=${daily_backup_disks_hostname:="backup"} daily_backup_disks_machid=${daily_backup_disks_machid:=`hostname -s`} daily_backup_disks_transporter=${daily_backup_disks_transporter:="/usr/bin/ssh"} daily_backup_disks_backuproot=${daily_backup_disks_backuproot:="/backup"} case "$daily_backup_disks_enable" in [Yy][Ee][Ss]) level=$(/bin/date +%w) date=$(/bin/date +%Y%m%d) echo '' for disk in ${daily_backup_disks_mounts}; do dname=${disk#"/"} test -z "$dname" && dname=root dname=$(echo $dname | /usr/bin/tr '/' '_') fname="${daily_backup_disks_machid}.${dname}.${level}" fname="${fname}.${date}.dump.${daily_backup_disks_ext}" fpath="${daily_backup_disks_backuproot}/${fname}" if test ${daily_backup_disks_islocal} = "NO"; then echo -n "Processing ${disk} to ${daily_backup_disks_host}:" echo "${daily_backup_disks_backuproot}/${fname}" if test ${daily_backup_disks_compress_local} = "NO"; then # dd is necessary, because bzip2 cannot "compress STDIN to # named file" /sbin/dump -${level}uaLf - ${disk} | \ ${daily_backup_disks_transporter} \ ${daily_backup_disks_host} \ "${daily_backup_disks_compressor} -c - | /bin/dd of=${fpath}" else # dd is now necessary, because scp cannot copy STDIN. /sbin/dump -${level}uaLf - ${disk} | \ ${daily_backup_disks_compressor} -c - | \ ${daily_backup_disks_transporter} \ ${daily_backup_disks_host} "/bin/dd of=${fpath}" fi else echo "Processing ${disk} to ${fpath}" /sbin/dump -${level}uaLf - ${disk} | \ ${daily_backup_disks_compressor} -c - >${fpath} fi rc=$(($rc + $?)) done ;; *) rc=0;; esac exit $rc -- Mel Problem with today's modular software: they start with the modules and never get to the software part.