From 53e4a56a246421d5ec52c23135661e9b7d7ddb63 Mon Sep 17 00:00:00 2001 From: Zoran Dzelajlija Date: Fri, 28 Oct 2005 12:07:53 +0000 Subject: [PATCH] r86: Jos -p opcija za cp_backup_connfile, za mkdir direktorija za backup ako ne postoji. --- carnet-tools.7 | 5 +++-- changelog.CARNet | 2 +- functions.sh | 24 ++++++++++++++++++------ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/carnet-tools.7 b/carnet-tools.7 index ac445ec..59aee63 100644 --- a/carnet-tools.7 +++ b/carnet-tools.7 @@ -72,15 +72,16 @@ da nije naveden \fIinterface\fR argument, vraca CIDR sucelja preko kojeg ide default route, a ako isti nije definiran, vraca CIDR loopback sucelja (lo). .TP -\fBcp_backup_conffile\fR [\fB-n\fR] [\fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR] +\fBcp_backup_conffile\fR [\fB-n\fR] [[\fB-p\fR] \fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR] .TP -\fBcp_check_and_backup\fR [\fB-n\fR] [\fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR] +\fBcp_check_and_backup\fR [\fB-n\fR] [[\fB-p\fR] \fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR] Funkcije backupiraju datoteku, kopija originala se sprema u /var/backups/ direktorij sa dodanim .bak nastavkom. Po potrebi se vrsi rotacija prethodno spremljenih kopija ako postoje neke razlike. Opcionalni argument \fIbackup_file\fR zamjenuje ime backup datoteke u /var/backups nekim drugim. Opcijom \fB-d\fR se moze podesiti alternativno odrediste, bilo apsolutnom putanjom do zeljenog direktorija ili relativnom unutar /var/backups. +\fB-p\fR ce automatski stvoriti odredisni direktorij ako ne postoji. Opcija \fB-n\fR sprecava dodavanje .bak nastavka. Na primjer: .nf cp_backup_conffile config.php diff --git a/changelog.CARNet b/changelog.CARNet index da12918..f45454b 100644 --- a/changelog.CARNet +++ b/changelog.CARNet @@ -1,6 +1,6 @@ carnet-tools-cn (2.5) sarge; urgency=low - * Dodane -n i -d opcije za cp_backup_conffile. + * Dodane -n, -p i -d opcije za cp_backup_conffile. -- Zoran Dzelajlija Fri, 28 Oct 2005 11:54:24 +0200 diff --git a/functions.sh b/functions.sh index 0813756..47ad62f 100644 --- a/functions.sh +++ b/functions.sh @@ -159,7 +159,7 @@ cp_check_and_backup() { cp_backup_conffile() { [ "$CP_SCRIPT_DEBUG" ] && set -vx - local dir ext file_bak check did + local dir ext file_bak check did opt_p opt_d dir=/var/backups ext=.bak @@ -170,25 +170,37 @@ cp_backup_conffile() { shift check=1 ;; + -p) + shift + opt_p=1 -d) shift - # is argument to -d full path or relative? + opt_d=1 + # Is argument to -d full path or relative? if echo "$1" |grep -q '^/'; then dir="$1" else dir="$dir/$1" fi shift - if [ ! -d "$dir" ]; then - echo "cp_backup_conffile: Invalid backup directory $dir" 1>&2 - return 3 - fi ;; -n) shift ext= esac done + if [ "$opt_d" ]; then + if [ ! -e "$dir" -a "$opt_p" ]; then + mkdir "$dir" + if [ $? -ne 0 ]; then + echo "cp_backup_conffile: Error creating backup directory $dir" 1>&2 + return 3 + fi + fi + if [ ! -d "$dir" ]; then + echo "cp_backup_conffile: Invalid backup directory $dir" 1>&2 + return 3 + fi if [ -z "$1" ]; then return 1 fi -- 1.7.10.4