Changeset 2850 in MondoRescue for branches/2.2.10/mondo/src/common
- Timestamp:
- Jul 24, 2011, 4:12:44 AM (13 years ago)
- Location:
- branches/2.2.10/mondo/src/common
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-archive.c
r2704 r2850 1575 1575 char *message_to_screen = NULL; 1576 1576 char *sz_blank_disk = NULL; 1577 char *isofs_cmd = NULL; 1578 char *full_isofs_cmd = NULL; 1577 1579 char *mds = NULL; 1578 1580 bool cd_is_mountable; … … 1709 1711 mr_asprintf(result_sz, "Call to mkisofs to make ISO (%s #%d) ", mds, g_current_media_number); 1710 1712 mr_free(mds); 1713 if (find_home_of_exe("genisoimage")) { 1714 mr_asprintf(&isofs_cmd, "%s", MONDO_GENISOIMAGE_CMD); 1715 } else { 1716 mr_asprintf(&isofs_cmd, "%s", MONDO_MKISOFS_CMD); 1717 } 1711 1718 if (bkpinfo->nonbootable_backup) { 1712 1719 log_msg(1, "Making nonbootable backup"); 1713 res = eval_call_to_make_ISO(MONDO_MKISOFS"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, message_to_screen); 1720 mr_asprintf(full_isofs_cmd, "%s%s-o '_ISO_' -V _CD#_ .",isofs_cmd,MONDO_MKISOFS); 1721 res = eval_call_to_make_ISO(full_isofs_cmd, destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen); 1722 mr_free(full_isofs_cmd); 1714 1723 } else { 1715 1724 log_msg(1, "Making bootable backup"); … … 1720 1729 1721 1730 1722 log_msg(1, "make_cd_use_lilo is actually %d", 1723 bkpinfo->make_cd_use_lilo); 1731 log_msg(1, "make_cd_use_lilo is actually %d", bkpinfo->make_cd_use_lilo); 1724 1732 if (bkpinfo->make_cd_use_lilo) { 1725 1733 log_msg(1, "make_cd_use_lilo = TRUE"); 1726 1734 #ifdef __IA64__ 1727 1735 log_msg(1, "IA64 --> elilo"); 1728 res = eval_call_to_make_ISO(MONDO_MKISOFS_REGULAR_ELILO"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, message_to_screen); 1736 mr_asprintf(full_isofs_cmd, "%s%s-o '_ISO_' -V _CD#_ .",isofs_cmd,MONDO_MKISOFS_REGULAR_ELILO); 1737 res = eval_call_to_make_ISO(full_isofs_cmd, destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen); 1738 mr_free(full_isofs_cmd); 1729 1739 #else 1730 1740 log_msg(1, "Non-ia64 --> lilo"); 1741 mr_asprintf(full_isofs_cmd, "%s%s-b images/mindi-bootroot.2880.img -c boot.cat -o '_ISO_' -J -V _CD#_ .",isofs_cmd,MONDO_MKISOFS); 1731 1742 // FIXME: fixed boot size probably wrong. lilo to be removed 1732 res = eval_call_to_make_ISO( MONDO_MKISOFS"-b images/mindi-bootroot.2880.img -c boot.cat -o '_ISO_' -J -V _CD#_ .", destfile, g_current_media_number, message_to_screen);1743 res = eval_call_to_make_ISO(full_isofs_cmd, destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen); 1733 1744 #endif 1734 1745 } else { 1735 1746 log_msg(1, "make_cd_use_lilo = FALSE"); 1736 1747 log_msg(1, "Isolinux"); 1737 res = eval_call_to_make_ISO(MONDO_MKISOFS_REGULAR_SYSLINUX"-o '_ISO_' -V _CD#_ .", destfile, g_current_media_number, message_to_screen); 1748 mr_asprintf(full_isofs_cmd, "%s%s-o '_ISO_' -V _CD#_ .",isofs_cmd,MONDO_MKISOFS_REGULAR_SYSLINUX); 1749 res = eval_call_to_make_ISO(full_isofs_cmd, destfile, g_current_media_number, MONDO_LOGFILE, message_to_screen); 1738 1750 } 1739 } 1751 mr_free(full_isofs_cmd); 1752 } 1753 mr_free(isofs_cmd); 1740 1754 paranoid_free(message_to_screen); 1741 1755 … … 3005 3019 * - @c manual_cd_tray 3006 3020 * - @c media_size 3007 * - @c netfs_mount3008 3021 * - @c netfs_remote_dir 3009 3022 * - @c scratchdir -
branches/2.2.10/mondo/src/common/libmondo-cli.c
r2816 r2850 495 495 if (strlen(bkpinfo->isodir) < 3) { 496 496 log_to_screen("Network share is not mounted. Trying to mount it for you.\n"); 497 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 498 mr_asprintf(tmp1, "sshfs %s", bkpinfo->netfs_mount); 499 } else if (strstr(bkpinfo->netfs_proto, "nfs")) { 500 mr_asprintf(tmp1, "mount %s", bkpinfo->netfs_mount); 497 if (bkpinfo->netfs_user) { 498 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 499 mr_asprintf(tmp1, "sshfs %s@%s", bkpinfo->netfs_user, bkpinfo->netfs_mount); 500 } else if (strstr(bkpinfo->netfs_proto, "nfs")) { 501 mr_asprintf(tmp1, "mount %s@%s", bkpinfo->netfs_user, bkpinfo->netfs_mount); 502 } else { 503 log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto); 504 fatal_error("Bad Protocol\n"); 505 } 501 506 } else { 502 log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto); 503 fatal_error("Bad Protocol\n"); 507 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 508 mr_asprintf(tmp1, "sshfs %s", bkpinfo->netfs_mount); 509 } else if (strstr(bkpinfo->netfs_proto, "nfs")) { 510 mr_asprintf(tmp1, "mount %s", bkpinfo->netfs_mount); 511 } else { 512 log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto); 513 fatal_error("Bad Protocol\n"); 514 } 504 515 } 505 516 i = system(tmp1); 506 517 mr_free(tmp1); 518 507 519 if (i) { 508 520 log_to_screen("Unable to mount Network share %s. Please mount manually.\n", bkpinfo->netfs_mount); 509 521 retval++; 510 522 } else { 511 mr_asprintf(tmp1, "mount | grep -E \"^[%s@]*%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_user, bkpinfo->netfs_mount); 523 if (bkpinfo->netfs_user) { 524 mr_asprintf(tmp1, "mount | grep -E \"^[%s@]*%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_user, bkpinfo->netfs_mount); 525 } else { 526 mr_asprintf(tmp1, "mount | grep -E \"^%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_mount); 527 } 512 528 mr_free(bkpinfo->isodir); 513 529 bkpinfo->isodir = call_program_and_get_last_line_of_output(tmp1,TRUE); -
branches/2.2.10/mondo/src/common/libmondo-devices.c
r2816 r2850 2019 2019 mr_strcat(bkpinfo->exclude_paths,"|%s",mounted_on_dsf); 2020 2020 } else { 2021 mr_asprintf( bkpinfo->exclude_paths,"%s",mounted_on_dsf);2021 mr_asprintf(&(bkpinfo->exclude_paths),"%s",mounted_on_dsf); 2022 2022 } 2023 2023 if (bkpinfo->exclude_devs) { 2024 2024 mr_strcat(bkpinfo->exclude_devs,"|%s",token); 2025 2025 } else { 2026 mr_asprintf( bkpinfo->exclude_devs,"%s",token);2026 mr_asprintf(&(bkpinfo->exclude_devs),"%s",token); 2027 2027 } 2028 2028 } … … 2039 2039 mr_strcat(bkpinfo->exclude_paths, "|%s",not_mounted_on_dsf); 2040 2040 } else { 2041 mr_asprintf( bkpinfo->exclude_paths,"%s",not_mounted_on_dsf);2041 mr_asprintf(&(bkpinfo->exclude_paths),"%s",not_mounted_on_dsf); 2042 2042 } 2043 2043 } … … 2625 2625 char *tmp = NULL; 2626 2626 char *p = NULL; 2627 char *q = NULL; 2627 2628 char *mds = NULL; 2628 2629 char *sz_size = NULL; … … 2915 2916 if (bkpinfo->netfs_mount[strlen(bkpinfo->netfs_mount) - 1] == '/') 2916 2917 bkpinfo->netfs_mount[strlen(bkpinfo->netfs_mount) - 1] = '\0'; 2917 mr_asprintf(command, "mount | grep \"%s \" | cut -d' ' -f3", bkpinfo->netfs_mount); 2918 q = strchr(bkpinfo->netfs_mount, '@'); 2919 if (q != NULL) { 2920 /* User found. Store the 2 values */ 2921 q++; 2922 /* new netfs mount */ 2923 mr_asprintf(tmp,"%s",q); 2924 } else { 2925 mr_asprintf(tmp,"%s",bkpinfo->netfs_mount); 2926 } 2927 mr_asprintf(command, "mount | grep \"%s \" | cut -d' ' -f3", tmp); 2928 mr_free(tmp); 2929 2918 2930 mr_free(bkpinfo->isodir); 2919 2931 bkpinfo->isodir = call_program_and_get_last_line_of_output(command,TRUE); … … 2964 2976 bkpinfo->netfs_mount = p; 2965 2977 2978 if (bkpinfo->netfs_user) { 2979 strcpy(tmp1, bkpinfo->netfs_user); 2980 } else { 2981 strcpy(tmp1, ""); 2982 } 2983 if (!popup_and_get_string 2984 ("Network user", "Which user should I use if any ?", 2985 tmp1, MAX_STR_LEN)) { 2986 log_to_screen("User has chosen not to backup the PC"); 2987 finish(1); 2988 } 2989 mr_free(bkpinfo->netfs_user); 2990 if (strcmp(tmp1, "") != 0) { 2991 mr_asprintf(&(bkpinfo->netfs_user), "%s", tmp1); 2992 } 2993 2966 2994 /* Initiate bkpinfo isodir path from running environment if mount already done */ 2967 2995 mr_free(bkpinfo->isodir); … … 2977 3005 if (bkpinfo->restore_data) { 2978 3006 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 2979 mr_asprintf(tmp, "sshfs -o ro %s %s", bkpinfo->netfs_mount, bkpinfo->isodir);3007 mr_asprintf(tmp, "sshfs -o ro"); 2980 3008 } else { 2981 mr_asprintf(tmp, "mount -t %s -o nolock,ro %s %s", bkpinfo->netfs_proto, bkpinfo->netfs_mount, bkpinfo->isodir);3009 mr_asprintf(tmp, "mount -t %s -o nolock,ro", bkpinfo->netfs_proto); 2982 3010 } 2983 3011 } else { 2984 3012 if (strstr(bkpinfo->netfs_proto, "sshfs")) { 2985 mr_asprintf(tmp, "sshfs %s %s", bkpinfo->netfs_mount, bkpinfo->isodir);3013 mr_asprintf(tmp, "sshfs"); 2986 3014 } else { 2987 mr_asprintf(tmp, "mount -t %s -o nolock %s %s", bkpinfo->netfs_proto, bkpinfo->netfs_mount, bkpinfo->isodir);3015 mr_asprintf(tmp, "mount -t %s -o nolock", bkpinfo->netfs_proto); 2988 3016 } 2989 3017 } 3018 if (bkpinfo->netfs_user) { 3019 mr_strcat(tmp, "%s@", bkpinfo->netfs_user); 3020 } 3021 mr_strcat(tmp, "%s %s", bkpinfo->netfs_mount, bkpinfo->isodir); 2990 3022 run_program_and_log_output(tmp, 3); 2991 3023 mr_free(tmp); … … 3212 3244 bkpinfo->zip_suffix = NULL; 3213 3245 } 3246 3214 3247 bkpinfo->verify_data = 3215 3248 ask_me_yes_or_no -
branches/2.2.10/mondo/src/common/libmondo-filelist.c
r2816 r2850 1583 1583 mr_free(tmp1); 1584 1584 1585 mr_asprintf(exclude_paths, MONDO_CACHE"|%s|%s|%s|%s|.|..|"MNT_CDROM"|"MNT_FLOPPY"|/media|/tmp|/proc|/sys|/dev/shm|"MINDI_CACHE,(excp == NULL) ? "" : excp, tmp2, (bkpinfo->tmpdir[0] == '/' && bkpinfo->tmpdir[1] == '/') ? (bkpinfo->tmpdir + 1) : bkpinfo->tmpdir, (bkpinfo->scratchdir[0] == '/' && bkpinfo->scratchdir[1] == '/') ? (bkpinfo->scratchdir + 1) : bkpinfo->scratchdir); 1585 mr_asprintf(exclude_paths, MONDO_CACHE"|%s|%s|%s|.|..|"MNT_CDROM"|"MNT_FLOPPY"|/media|/tmp|/proc|/sys|/dev/shm|"MINDI_CACHE, tmp2, (bkpinfo->tmpdir[0] == '/' && bkpinfo->tmpdir[1] == '/') ? (bkpinfo->tmpdir + 1) : bkpinfo->tmpdir, (bkpinfo->scratchdir[0] == '/' && bkpinfo->scratchdir[1] == '/') ? (bkpinfo->scratchdir + 1) : bkpinfo->scratchdir); 1586 if (excp != NULL) { 1587 mr_strcat(exclude_paths,"|%s",excp); 1588 } 1589 mr_free(tmp2); 1586 1590 1587 1591 log_msg(2, "Excluding paths = '%s'", exclude_paths); -
branches/2.2.10/mondo/src/common/libmondo-files.c
r2705 r2850 1171 1171 mr_free(tmp); 1172 1172 1173 mr_asprintf(tmp, "%s/NETFS-SERVER-IPADDR", bkpinfo->tmpdir); 1174 write_one_liner_data_file(tmp, netfs_server_ipaddr); 1175 mr_free(tmp); 1176 1177 mr_asprintf(tmp, "%s/NETFS-SERVER-MOUNT", bkpinfo->tmpdir); 1178 write_one_liner_data_file(tmp, bkpinfo->netfs_mount); 1179 mr_free(tmp); 1180 1181 if (bkpinfo->netfs_user) { 1182 mr_asprintf(tmp, "%s/NETFS-SERVER-USER", bkpinfo->tmpdir); 1183 write_one_liner_data_file(tmp, bkpinfo->netfs_user); 1184 mr_free(tmp); 1185 } 1186 mr_asprintf(tmp, "%s/NETFS-SERVER-PATH", bkpinfo->tmpdir); 1187 write_one_liner_data_file(tmp, bkpinfo->netfs_remote_dir); 1188 mr_free(tmp); 1189 1190 mr_asprintf(tmp, "%s/ISO-PREFIX", bkpinfo->tmpdir); 1191 write_one_liner_data_file(tmp, bkpinfo->prefix); 1192 mr_free(tmp); 1193 1173 1194 log_it("Finished storing Network configuration"); 1174 1195 } -
branches/2.2.10/mondo/src/common/libmondo-tools.c
r2816 r2850 168 168 char *tmp = NULL; 169 169 170 mr_asprintf(tmp, "for i in `find /root /home - type d -name Desktop -maxdepth 2`; do file=$i/.directory; if [ -f \"$file\" ] ; then mv -f $file $file.old ; awk '{if (index($0, \"rootimagesmindi\")) { while (length($0)>2) { getline;} ; } else { print $0;};}' $file.old > $file ; fi ; done");170 mr_asprintf(tmp, "for i in `find /root /home -maxdepth 2 -type d -name Desktop -maxdepth 2`; do file=$i/.directory; if [ -f \"$file\" ] ; then mv -f $file $file.old ; awk '{if (index($0, \"rootimagesmindi\")) { while (length($0)>2) { getline;} ; } else { print $0;};}' $file.old > $file ; fi ; done"); 171 171 run_program_and_log_output(tmp, 5); 172 172 mr_free(tmp); … … 310 310 #endif 311 311 } 312 313 312 314 313 /** … … 349 348 char *command = NULL; 350 349 char *hostname = NULL; 350 char *isofs_cmd = NULL; 351 351 char *ip_address = NULL; 352 352 int retval = 0; … … 518 518 mr_free(tmp); 519 519 520 if (find_home_of_exe("genisoimage")) { 521 mr_asprintf(isofs_cmd, "%s", MONDO_GENISOIMAGE_CMD); 522 } else { 523 mr_asprintf(isofs_cmd, "%s", MONDO_MKISOFS_CMD); 524 } 520 525 if (bkpinfo->nonbootable_backup) { 521 mr_asprintf(mondo_mkisofs_sz, MONDO_MKISOFS);526 mr_asprintf(mondo_mkisofs_sz, "%s%s", isofs_cmd, MONDO_MKISOFS); 522 527 } else if 523 528 #ifdef __FreeBSD__ … … 528 533 #ifdef __IA64__ 529 534 { 530 mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_ELILO);535 mr_asprintf(mondo_mkisofs_sz, "%s%s -V _CD#_", isofs_cmd, MONDO_MKISOFS_REGULAR_ELILO); 531 536 } 532 537 #else 533 538 { 534 mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_LILO);539 mr_asprintf(mondo_mkisofs_sz, "%s%s -V _CD#_", isofs_cmd, MONDO_MKISOFS_REGULAR_LILO); 535 540 } 536 541 #endif 537 542 else 538 543 { 539 mr_asprintf(mondo_mkisofs_sz, "%s -V _CD#_", MONDO_MKISOFS_REGULAR_SYSLINUX);544 mr_asprintf(mondo_mkisofs_sz, "%s%s -V _CD#_", isofs_cmd, MONDO_MKISOFS_REGULAR_SYSLINUX); 540 545 } 541 546 542 547 mr_free(bkpinfo->call_make_iso); 548 mr_free(isofs_cmd); 549 543 550 if (bkpinfo->manual_cd_tray) { 544 551 if (bkpinfo->call_before_iso == NULL) { … … 628 635 629 636 *colon = '\0'; 630 hent = gethostbyname(hostname); 637 colon = strchr(hostname, '@'); 638 if (colon) { 639 *colon = '\0'; 640 colon++; 641 hent = gethostbyname(colon); 642 mr_asprintf(bkpinfo->netfs_user,"%s", hostname); 643 } else { 644 hent = gethostbyname(hostname); 645 } 631 646 if (!hent) { 632 647 log_it("Can't resolve Network mount (%s): %s", hostname, hstrerror(h_errno));
Note:
See TracChangeset
for help on using the changeset viewer.