Date: Mon, 7 Apr 2008 16:39:29 +0200 From: Mel <fbsd.questions@rachie.is-a-geek.net> To: freebsd-questions@freebsd.org Cc: Paul Schmehl <pauls@utdallas.edu> Subject: Re: Remote backups using ssh and dump Message-ID: <200804071639.35091.fbsd.questions@rachie.is-a-geek.net> In-Reply-To: <4E73E577666CE823A7212C54@utd65257.utdallas.edu> References: <4E73E577666CE823A7212C54@utd65257.utdallas.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804071639.35091.fbsd.questions>