diff options
author | Alasdair Kergon <agk@redhat.com> | 2001-12-31 19:09:51 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2001-12-31 19:09:51 +0000 |
commit | 41b2fd5f4de6f5932ac4acaee495b059d5765ecd (patch) | |
tree | 95e66904f6296970794f17121294b3b26111ad14 /tools/lvm.c | |
parent | 4624c6f8454e2f9f4ff004dc99beee65f87ca635 (diff) | |
download | lvm2-41b2fd5f4de6f5932ac4acaee495b059d5765ecd.tar.gz lvm2-41b2fd5f4de6f5932ac4acaee495b059d5765ecd.tar.xz lvm2-41b2fd5f4de6f5932ac4acaee495b059d5765ecd.zip |
o Use lvm_snprintf wherever return value is used
o Add parameters to set retention limits for backups
Diffstat (limited to 'tools/lvm.c')
-rw-r--r-- | tools/lvm.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/tools/lvm.c b/tools/lvm.c index 02e0f8a8..61b06089 100644 --- a/tools/lvm.c +++ b/tools/lvm.c @@ -13,7 +13,6 @@ #include <libgen.h> #include <sys/stat.h> #include <ctype.h> -#include <limits.h> #include "stub.h" #include "vgcache.h" @@ -68,21 +67,25 @@ static int _debug; static int _default_verbose; static int _verbose; - /* * The lvm_sys_dir contains: * * o The lvm configuration (lvm.conf) * o The persistent filter cache (.cache) - * o Volume group backups (backups) + * o Volume group backups (backup/) * */ static char _sys_dir[PATH_MAX] = "/etc/lvm"; static char _backup_dir[PATH_MAX]; static char _dev_dir[PATH_MAX]; +static int _backup_days = 14; /* Keep at least 14 days */ +static int _backup_number = 10; /* Keep at least 10 backups */ +static int _backup_auto = 1; /* Autobackups enabled by default */ + #define DEFAULT_DEV_DIR "/dev" + /* static functions */ static void register_commands(void); static struct command *find_command(const char *name); @@ -548,7 +551,8 @@ static int process_common_commands(struct command *com) /* Set autobackup if command takes this option */ for (l = 0; l < com->num_args; l++) if (com->valid_args[l] == autobackup_ARG) - if (!autobackup_init(_backup_dir)) + if (!autobackup_init(_backup_dir, _backup_days, + _backup_number, _backup_auto)) return EINVALID_CMD_LINE; /* Zero indicates it's OK to continue processing this command */ @@ -845,13 +849,22 @@ static int init(void) dm_log_init(print_log); - if (lvm_snprintf(_backup_dir, sizeof(_backup_dir), "%s", + if (lvm_snprintf(_backup_dir, sizeof(_backup_dir), "%s/backup", find_config_str(cmd->cf->root, "backup/dir", '/', _sys_dir)) < 0) { log_error("Backup directory given in config file too long"); return 0; } + _backup_days = find_config_int(cmd->cf->root, "backup/days", '/', + _backup_days); + + _backup_number = find_config_int(cmd->cf->root, "backup/keep", '/', + _backup_number); + + _backup_auto = find_config_int(cmd->cf->root, "backup/auto", '/', + _backup_auto); + if (!dev_cache_setup(cmd->cf)) return 0; |