Changeset 2320 in MondoRescue for branches/2.2.10/mondo/src/common/libmondo-filelist.c
- Timestamp:
- Aug 18, 2009, 2:37:39 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-filelist.c
r2296 r2320 1296 1296 1297 1297 assert(bkpinfo != NULL); 1298 log_it("tmpdir=%s; scratchdir=%s", bkpinfo->tmpdir, 1299 bkpinfo->scratchdir); 1298 log_it("tmpdir=%s; scratchdir=%s", bkpinfo->tmpdir, bkpinfo->scratchdir); 1300 1299 if (bkpinfo->make_filelist) { 1301 1300 mvaddstr_and_log_it(g_currentY, 0, … … 1308 1307 if (bkpinfo->make_filelist) { 1309 1308 res = 1310 mondo_makefilelist(MONDO_LOGFILE, bkpinfo->tmpdir, 1311 bkpinfo->scratchdir, bkpinfo->include_paths, 1312 bkpinfo->exclude_paths, 1313 bkpinfo->differential, NULL); 1309 mondo_makefilelist(MONDO_LOGFILE, bkpinfo->tmpdir, bkpinfo->scratchdir, bkpinfo->include_paths, bkpinfo->exclude_paths, bkpinfo->differential, NULL); 1314 1310 } else { 1315 1311 res = 1316 mondo_makefilelist(MONDO_LOGFILE, bkpinfo->tmpdir, 1317 bkpinfo->scratchdir, NULL, 1318 bkpinfo->exclude_paths, 1319 bkpinfo->differential, 1320 bkpinfo->include_paths); 1312 mondo_makefilelist(MONDO_LOGFILE, bkpinfo->tmpdir, bkpinfo->scratchdir, NULL, bkpinfo->exclude_paths, bkpinfo->differential, bkpinfo->include_paths); 1321 1313 } 1322 1314 … … 1382 1374 malloc_string(find_skeleton_marker); 1383 1375 mr_asprintf(&find_excludes, " "); 1384 while((token = mr_strtok (sth, delims, &lastpos))) { 1385 mr_asprintf(&strtmp,"%s", find_excludes); 1386 paranoid_free(find_excludes); 1387 mr_asprintf(&find_excludes,"%s -path %s -prune -o", strtmp, token); 1388 paranoid_free(strtmp); 1389 mr_free(token); 1376 if (sth != NULL) { 1377 while((token = mr_strtok(sth, delims, &lastpos))) { 1378 mr_strcat(find_excludes," -path %s -prune -o", token); 1379 } 1390 1380 } 1391 1381 #if linux … … 1396 1386 mr_asprintf(&strtmp, "find '%s' -fstype mvfs -prune -o -path /proc -prune -o %s -type d -print > %s 2> /dev/null", dir, find_excludes, g_skeleton_filelist); 1397 1387 #endif 1398 paranoid_free(find_excludes); 1388 mr_free(find_excludes); 1389 1399 1390 log_msg(5, "find command = %s", strtmp); 1400 1391 (void)system(strtmp); 1401 paranoid_free(strtmp); 1392 mr_free(strtmp); 1393 1402 1394 mr_asprintf(&tmp, "wc -l %s | awk '{print $1;}'", g_skeleton_filelist); 1403 g_skeleton_entries = 1404 1 + atol(call_program_and_get_last_line_of_output(tmp));1405 paranoid_free(tmp); 1395 g_skeleton_entries = 1 + atol(call_program_and_get_last_line_of_output(tmp)); 1396 mr_free(tmp); 1397 1406 1398 sprintf(name_of_evalcall_form, "Making catalog of %s", dir); 1407 1399 open_evalcall_form(name_of_evalcall_form); … … 1415 1407 "grep -Fv '%s' %s > %s.new 2> /dev/null", dir, 1416 1408 g_skeleton_filelist, g_skeleton_filelist); 1417 // log_msg(0, "fsm = %s", find_skeleton_marker);1418 1409 if (!system(find_skeleton_marker)) { 1419 1410 percentage = (int) (skeleton_lino * 100 / g_skeleton_entries); 1420 1411 skeleton_lino++; 1421 // log_msg(5, "Found %s", dir);1422 // log_msg(2, "Incrementing skeleton_lino; now %ld/%ld (%d%%)", skeleton_lino, g_skeleton_entries, percentage);1423 1412 sprintf(find_skeleton_marker, "mv -f %s.new %s", 1424 1413 g_skeleton_filelist, g_skeleton_filelist); 1425 // log_msg(6, "fsm = %s", find_skeleton_marker);1426 1414 run_program_and_log_output(find_skeleton_marker, 8); 1427 1415 time(&this_time); … … 1570 1558 char *p, *q; 1571 1559 char *sz_datefile; 1572 char *sz_filelist, *exclude_paths, *tmp; 1560 char *sz_filelist; 1561 char *exclude_paths = NULL; 1562 char *tmp; 1573 1563 int i; 1574 1564 FILE *fout; … … 1581 1571 malloc_string(tmp); 1582 1572 malloc_string(g_skeleton_filelist); 1583 if (!(exclude_paths = malloc(8*MAX_STR_LEN))) {1584 fatal_error("Cannot malloc exclude_paths");1585 }1586 1573 mr_asprintf(&sz_datefile,MONDO_CACHE"/difflevel.%d" , 0); 1587 1574 if (!include_paths && !userdef_filelist) { … … 1637 1624 mr_free(command); 1638 1625 } else { 1639 log_msg(2, "include_paths = '%s'", include_paths); 1626 if (include_paths) { 1627 log_msg(2, "include_paths = '%s'", include_paths); 1628 } 1640 1629 log_msg(1, "Calculating filelist"); 1641 1630 mr_asprintf(&tmp2, "%s", call_program_and_get_last_line_of_output("mount | grep -Ew 'ntfs|ntfs-3g|fat|vfat|dos' | awk '{print $3}'")); … … 1649 1638 log_msg(2, "Found windows files: %s",tmp2); 1650 1639 } 1651 paranoid_free(tmp1); 1652 1653 snprintf(exclude_paths, (size_t)8*MAX_STR_LEN," %s %s %s %s %s . .. \ 1654 " MNT_CDROM " " MNT_FLOPPY " /media /tmp \ 1655 /proc /sys " MINDI_CACHE, MONDO_CACHE, excp, tmp2, (tmpdir[0] == '/' && tmpdir[1] == '/') ? (tmpdir + 1) : tmpdir, (scratchdir[0] == '/' && scratchdir[1] == '/') ? (scratchdir + 1) : scratchdir); 1656 paranoid_free(tmp2); 1640 mr_free(tmp1); 1641 1642 mr_asprintf(&exclude_paths, " %s %s %s %s %s . .. " MNT_CDROM " " MNT_FLOPPY " /media /tmp /proc /sys " MINDI_CACHE, MONDO_CACHE, (excp == NULL) ? "" : excp, tmp2, (tmpdir[0] == '/' && tmpdir[1] == '/') ? (tmpdir + 1) : tmpdir, (scratchdir[0] == '/' && scratchdir[1] == '/') ? (scratchdir + 1) : scratchdir); 1643 mr_free(tmp2); 1657 1644 1658 1645 log_msg(2, "Excluding paths = '%s'", exclude_paths); 1659 log_msg(2, 1660 "Generating skeleton filelist so that we can track our progress"); 1646 log_msg(2, "Generating skeleton filelist so that we can track our progress"); 1661 1647 sprintf(g_skeleton_filelist, "%s/tmpfs/skeleton.txt", tmpdir); 1662 1648 make_hole_for_file(g_skeleton_filelist); … … 1667 1653 } 1668 1654 i = 0; 1669 if ( strlen(include_paths) == 0) {1655 if ((!include_paths) || (strlen(include_paths) == 0)) { 1670 1656 log_msg(1, "Including only '/' in %s", sz_filelist); 1671 1657 open_and_list_dir("/", exclude_paths, fout, … … 1685 1671 } 1686 1672 } 1673 mr_free(exclude_paths); 1687 1674 paranoid_fclose(fout); 1688 1675 } … … 1702 1689 paranoid_free(sz_filelist); 1703 1690 log_msg(2, "Freeing variables"); 1704 paranoid_free(exclude_paths);1705 1691 paranoid_free(tmp); 1706 1692 paranoid_free(g_skeleton_filelist);
Note:
See TracChangeset
for help on using the changeset viewer.