From 6747fddc8ece9e748a8624cb55828465bdb3ba1c Mon Sep 17 00:00:00 2001 From: Zoran Dzelajlija Date: Fri, 28 Oct 2005 10:08:02 +0000 Subject: [PATCH] r85: Dodane -d i -n opcije za cp_backup_conffile. --- carnet-tools.7 | 15 ++++++++++----- changelog.CARNet | 6 ++++++ functions.sh | 38 +++++++++++++++++++++++++++++++------- 3 files changed, 47 insertions(+), 12 deletions(-) diff --git a/carnet-tools.7 b/carnet-tools.7 index 4caa4a9..ac445ec 100644 --- a/carnet-tools.7 +++ b/carnet-tools.7 @@ -62,7 +62,7 @@ naveden kao argument, vraca IP adresu od loopback sucelja (lo). Funkcija vraca IP netmask mreznog sucelja. U slucaju da nije naveden kao argument, vraca IP netmask od loopback sucelja (lo). .TP -\fBcp_get_ifdefault\fR [\fBdev\fR|\fBaddr\fR] +\fBcp_get_ifdefault\fR <\fBdev\fR|\fBaddr\fR> Funkcija vraca naziv uredjaj ili adresu podrazumne rute (default route). .TP @@ -72,14 +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 \fIfile\fR [\fIbackup_file\fR] +\fBcp_backup_conffile\fR [\fB-n\fR] [\fB-d\fR \fIbackup_dir\fR] \fIfile\fR [\fIbackup_file\fR] .TP -\fBcp_check_and_backup\fR \fIfile\fR [\fIbackup_file\fR] +\fBcp_check_and_backup\fR [\fB-n\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. Na primjer: +nekim drugim. Opcijom \fB-d\fR se moze podesiti alternativno odrediste, bilo +apsolutnom putanjom do zeljenog direktorija ili relativnom unutar /var/backups. +Opcija \fB-n\fR sprecava dodavanje .bak nastavka. Na primjer: .nf cp_backup_conffile config.php .fi @@ -88,6 +90,9 @@ cp_backup_conffile config.php cp_backup_conffile apache.conf squirrelmail-apache.conf .fi - backup ide u /var/backups/squirrelmail-apache.conf.bak +cp_backup_conffile -n -d aai preinstall.ldif +.fi + - backup ide u /var/backups/aai/preinstall.ldif cp_backup_conffile uspjesno zavrsi ako nije bilo potrebno izvrsiti backup, dok cp_check_and_backup u tom slucaju vraca status 3. .TP @@ -98,7 +103,7 @@ koristi za zamjenu stare vrijednosti postavke novom. .TP \fBcp_echo\fR [\fB-mailonly\fR|\fB-m\fR] \fIstring\fR .TP -\fBcp_mail\fR [\fB-q\fR] \fIpackage\fR \fIversion\fR +\fBcp_mail\fR [\fB-q\fR] \fIpackage\fR [\fIversion\fR] U kombinaciji, ove funkcije sluze za slanje poruka na stdout \fUi\fR na mail rootu. Koristiti za informacije koje svakako treba dostaviti sistemcu (passwordi, nekompatibilne izmjene u konfiguraciji diff --git a/changelog.CARNet b/changelog.CARNet index 1b6eb63..da12918 100644 --- a/changelog.CARNet +++ b/changelog.CARNet @@ -1,3 +1,9 @@ +carnet-tools-cn (2.5) sarge; urgency=low + + * Dodane -n i -d opcije za cp_backup_conffile. + + -- Zoran Dzelajlija Fri, 28 Oct 2005 11:54:24 +0200 + carnet-tools-cn (2.4.3) sarge; urgency=low * Inicijalizacija pomocne $CP_ECHO_RETURN varijable. diff --git a/functions.sh b/functions.sh index 4390978..0813756 100644 --- a/functions.sh +++ b/functions.sh @@ -159,12 +159,36 @@ cp_check_and_backup() { cp_backup_conffile() { [ "$CP_SCRIPT_DEBUG" ] && set -vx - local file_bak check did + local dir ext file_bak check did - if [ "x$1" = "x-r" ]; then - check=1 - shift - fi + dir=/var/backups + ext=.bak + + while echo "x$1" |grep -q '^x-'; do + case "$1" in + -r) + shift + check=1 + ;; + -d) + shift + # 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 [ -z "$1" ]; then return 1 fi @@ -173,9 +197,9 @@ cp_backup_conffile() { return 2 fi if [ -z "$2" ]; then - file_bak="/var/backups/`basename $1`.bak" + file_bak="$dir/`basename $1`$ext" else - file_bak="/var/backups/`basename $2`.bak" + file_bak="$dir/`basename $2`$ext" fi if [ ! -f "$file_bak" ]; then -- 1.7.10.4