/*
Bacula® - The Network Backup Solution
- Copyright (C) 2002-2008 Free Software Foundation Europe e.V.
+ Copyright (C) 2002-2009 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
/* Global variables */
static const char *idx_tmp_name;
-
static void usage()
{
fprintf(stderr,
-"Usage: dbcheck [-c config] [-C catalog name] [-d debug_level] <working-directory> <bacula-database> <user> <password> [<dbhost>] [<dbport>]\n"
+"Usage: dbcheck [-c config ] [-B] [-C catalog name] [-d debug_level] <working-directory> <bacula-database> <user> <password> [<dbhost>] [<dbport>]\n"
" -b batch mode\n"
" -C catalog name in the director conf file\n"
" -c Director conf filename\n"
+" -B print catalog configuration and exit\n"
" -d <nn> set debug level to <nn>\n"
-" -dt print timestamp in debug output\n"
+" -dt print a timestamp in debug output\n"
" -f fix inconsistencies\n"
" -v verbose\n"
" -? print this message\n\n");
int ch;
const char *user, *password, *db_name, *dbhost;
int dbport = 0;
+ bool print_catalog=false;
char *configfile = NULL;
char *catalogname = NULL;
char *endptr;
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ lmgr_init_thread();
my_name_is(argc, argv, "dbcheck");
init_msg(NULL, NULL); /* setup message handler */
memset(&id_list, 0, sizeof(id_list));
memset(&name_list, 0, sizeof(name_list));
- while ((ch = getopt(argc, argv, "bc:C:d:fv?")) != -1) {
+ while ((ch = getopt(argc, argv, "bc:C:d:fvB?")) != -1) {
switch (ch) {
+ case 'B':
+ print_catalog = true; /* get catalog information from config */
+ break;
+
case 'b': /* batch */
batch = true;
break;
exit(1);
}
set_working_directory(director->working_directory);
+
+ /* Print catalog information and exit (-B) */
+ if (print_catalog) {
+ POOLMEM *buf = get_pool_memory(PM_MESSAGE);
+ printf("%sdb_type=%s\nworking_dir=%s\n", catalog->display(buf),
+ db_get_type(), working_directory);
+ free_pool_memory(buf);
+ exit(0);
+ }
+
db_name = catalog->db_name;
user = catalog->db_user;
password = catalog->db_password;
db_close_database(NULL, db);
close_msg(NULL);
term_msg();
+ lmgr_cleanup_main();
return 0;
}
else
printf(_(" Verbose is off.\n"));
- printf(_("Please select the fuction you want to perform.\n"));
+ printf(_("Please select the function you want to perform.\n"));
while (!quit) {
if (fix) {
int found = false;
memset(&idx_list, 0, sizeof(idx_list));
- char *query = "SHOW INDEX FROM File";
+ const char *query = "SHOW INDEX FROM File";
if (!db_sql_query(db, query, check_idx_handler, (void *)col_name)) {
printf("%s\n", db_strerror(db));
}