Changeset 914 in MondoRescue for trunk/mondo
- Timestamp:
- Nov 2, 2006, 2:00:32 AM (17 years ago)
- Location:
- trunk/mondo/src
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mondo/src/common/libmondo-archive.c
r900 r914 568 568 569 569 mr_asprintf(&tmp, 570 "echo '%s' | tr -s ' ' '\n' | grep - x '/dev/.*' | tr -s '\n' ' ' | awk '{print $0\"\\n\";}'",570 "echo '%s' | tr -s ' ' '\n' | grep -E '^/dev/.*$' | tr -s '\n' ' ' | awk '{print $0\"\\n\";}'", 571 571 bkpinfo->exclude_paths); 572 572 devs_to_exclude = call_program_and_get_last_line_of_output(tmp); … … 1741 1741 } 1742 1742 pause_for_N_seconds(5, "Letting DVD drive settle"); 1743 mr_asprintf(&sz_blank_disk, "dvd+rw-format %s",1743 mr_asprintf(&sz_blank_disk, "dvd+rw-format -force %s", 1744 1744 bkpinfo->media_device); 1745 1745 log_msg(3, "sz_blank_disk = '%s'", sz_blank_disk); … … 1805 1805 // FIXME --- change mkisofs string to MONDO_MKISOFS_NONBOOTABLE and add ' .' at end 1806 1806 res = eval_call_to_make_ISO(bkpinfo, 1807 "mkisofs -o _ISO_-r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .",1807 "mkisofs -o '_ISO_' -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", 1808 1808 destfile, g_current_media_number, 1809 1809 MONDO_LOGFILE, message_to_screen); … … 1824 1824 #ifdef __IA64__ 1825 1825 log_msg(1, "IA64 --> elilo"); 1826 mr_asprintf(&tmp2,"mkisofs -no-emul-boot -b images/mindi-bootroot.%s.img -c boot.cat -o _ISO_-J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", bkpinfo->mrconf->mindi_ia64_boot_size);1826 mr_asprintf(&tmp2,"mkisofs -no-emul-boot -b images/mindi-bootroot.%s.img -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", bkpinfo->mrconf->mindi_ia64_boot_size); 1827 1827 res = eval_call_to_make_ISO(bkpinfo, 1828 1828 tmp2, … … 1837 1837 log_msg(1, "Non-ia64 --> lilo"); 1838 1838 res = eval_call_to_make_ISO(bkpinfo, 1839 "mkisofs -b images/mindi-bootroot.2880.img -c boot.cat -o _ISO_-J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .",1839 "mkisofs -b images/mindi-bootroot.2880.img -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", 1840 1840 destfile, 1841 1841 g_current_media_number, … … 1847 1847 log_msg(1, "Isolinux"); 1848 1848 res = eval_call_to_make_ISO(bkpinfo, 1849 "mkisofs -no-emul-boot -b isolinux.bin -boot-load-size 4 -boot-info-table -c boot.cat -o _ISO_-J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .",1849 "mkisofs -no-emul-boot -b isolinux.bin -boot-load-size 4 -boot-info-table -c boot.cat -o '_ISO_' -J -r -p MondoRescue -publisher www.mondorescue.org -A Mondo_Rescue_GPL -V _CD#_ .", 1850 1850 destfile, 1851 1851 g_current_media_number, … … 3619 3619 } 3620 3620 mr_asprintf(&tmp, 3621 "grep 'afio: ' %s | sed 's/afio: //' | grep -v x '/dev/.*' >> /tmp/changed.files",3621 "grep 'afio: ' %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> /tmp/changed.files", 3622 3622 MONDO_LOGFILE); 3623 3623 system(tmp); … … 3625 3625 3626 3626 mr_asprintf(&tmp, 3627 "grep 'star: ' %s | sed 's/star: //' | grep -v x '/dev/.*' >> /tmp/changed.files",3627 "grep 'star: ' %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> /tmp/changed.files", 3628 3628 MONDO_LOGFILE); 3629 3629 system(tmp); -
trunk/mondo/src/common/libmondo-devices.c
r903 r914 1197 1197 paranoid_pclose(fin); 1198 1198 1199 mr_asprintf(&tmp, "%s | grep - w \"%s\" > /dev/null 2> /dev/null",1199 mr_asprintf(&tmp, "%s | grep -E \"^%s\" > /dev/null 2> /dev/null", 1200 1200 SWAPLIST_COMMAND, device_with_space); 1201 1201 mr_free(device_with_space); -
trunk/mondo/src/common/libmondo-filelist.c
r900 r914 516 516 517 517 518 /*519 int set_acl_list(char*masklist, char*acl_fname)520 {521 char*command;522 int retval=0;523 524 if (length_of_file(acl_fname) <= 0) { return(0); }525 log_msg(1, "FIXME - not using masklist");526 malloc_string(command);527 if (find_home_of_exe("setfacl"))528 {529 sprintf(command, "gzip -dc %s | setfacl --restore - 2>> %s", acl_fname, MONDO_LOGFILE);530 log_msg(1, "command = %s", command);531 retval = system(command);532 }533 mr_free(command);534 return(retval);535 }536 */537 538 539 518 int set_EXAT_list(char *orig_msklist, char *original_exat_fname, 540 519 char *executable) … … 689 668 int set_fattr_list(char *masklist, char *fattr_fname) 690 669 { 691 return (set_EXAT_list(masklist, fattr_fname, "setfattr")); 670 if (find_home_of_exe("setfattr")) { 671 return (set_EXAT_list(masklist, fattr_fname, "setfattr")); 672 } else { 673 log_msg(1, "ERROR: set_EXAT_list: setfattr doesn't exist"); 674 return(0); 675 } 692 676 } 693 677 … … 696 680 int set_acl_list(char *masklist, char *acl_fname) 697 681 { 698 return (set_EXAT_list(masklist, acl_fname, "setfacl")); 682 if (find_home_of_exe("setfacl")) { 683 return (set_EXAT_list(masklist, acl_fname, "setfacl")); 684 } else { 685 log_msg(1, "ERROR: set_EXAT_list: setfacl doesn't exist"); 686 return(0); 687 } 699 688 } 700 689 -
trunk/mondo/src/common/libmondo-tools.c
r900 r914 404 404 #else 405 405 tmp = call_program_and_get_last_line_of_output 406 ("free | grep \":\"| tr -s ' ' '\t' | cut -f2 | head -n1");406 ("free | grep ':' | tr -s ' ' '\t' | cut -f2 | head -n1"); 407 407 avm += atol(tmp); 408 408 mr_free(tmp); … … 1110 1110 log_msg(4, "Setting command to something"); 1111 1111 mr_asprintf(&command, 1112 "grep -v \":\" /etc/fstab | grep -vx \"#.*\" | grep -w \"/boot\" | tr -s ' ' '\t' | cut -f1 | head -n1");1112 "grep -v ':' /etc/fstab | grep -vE '^#.*$' | grep -E \"[ ]/boot[ ]\" | tr -s ' ' '\t' | cut -f1 | head -n1"); 1113 1113 log_msg(4, "Cool. Command = '%s'", command); 1114 1114 tmp = call_program_and_get_last_line_of_output(command); … … 1127 1127 } 1128 1128 } else { 1129 mr_asprintf(&command, "mount | grep - w \"%s\"", tmp);1129 mr_asprintf(&command, "mount | grep -E '^%s'", tmp); 1130 1130 log_msg(3, "command = %s", command); 1131 1131 if (run_program_and_log_output(command, 5)) { … … 1215 1215 ("mktemp -q /tmp/mojo-jojo.blah.XXXXXX"); 1216 1216 if (does_file_exist(config_file)) { 1217 mr_asprintf(&command, "grep -v x '%s .*' %s > %s",1217 mr_asprintf(&command, "grep -vE '^%s .*$' %s > %s", 1218 1218 label, config_file, tempfile); 1219 1219 paranoid_system(command); -
trunk/mondo/src/common/libmondo-verify.c
r900 r914 71 71 log_msg(1, "Now scanning log file for 'afio: ' stuff"); 72 72 mr_asprintf(&command, 73 "grep \"afio: \" %s | sed 's/afio: //' | grep -v x \"/dev/.*\">> %s",73 "grep \"afio: \" %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> %s", 74 74 stderr_fname, afio_found_changes); 75 75 log_msg(2, command); … … 82 82 log_msg(1, "Now scanning log file for 'star: ' stuff"); 83 83 mr_asprintf(&command, 84 "grep \"star: \" %s | sed 's/star: //' | grep -v x \"/dev/.*\">> %s",84 "grep \"star: \" %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> %s", 85 85 stderr_fname, afio_found_changes); 86 86 log_msg(2, command); … … 1072 1072 (int) (random() % 32767)); 1073 1073 mr_asprintf(&tmp, 1074 "grep - x \"%s:.*\" %s | cut -d'\"' -f2 | sort -u | awk '{print \"/\"$0;};' | tr -s '/' '/' | grep -v \"(total of\" | grep -v \"incheckentry.*xwait\" | grep -vx \"/afio:.*\" | grep -vx \"dev/.*\"> %s",1074 "grep -E '^%s:.*$' %s | cut -d'\"' -f2 | sort -u | awk '{print \"/\"$0;};' | tr -s '/' '/' | grep -v \"(total of\" | grep -v \"incheckentry.*xwait\" | grep -vE '^/afio:.*$' | grep -vE '^dev/.*$' > %s", 1075 1075 (bkpinfo->use_star) ? "star" : "afio", MONDO_LOGFILE, 1076 1076 changed_files_fname); -
trunk/mondo/src/mondoarchive/mondo-cli.c
r900 r914 459 459 mr_allocstr(bkpinfo->nfs_remote_dir,"/"); 460 460 } 461 mr_asprintf(&tmp, "mount | grep - x \"%s .*\"| cut -d' ' -f3",461 mr_asprintf(&tmp, "mount | grep -E '^%s .*$' | cut -d' ' -f3", 462 462 bkpinfo->nfs_mount); 463 463 mr_free(bkpinfo->isodir); -
trunk/mondo/src/mondorestore/mondo-restore.c
r900 r914 2046 2046 mr_asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH); 2047 2047 mr_asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH); 2048 tmp = find_home_of_exe("setfacl"); 2049 if (length_of_file(acl_fname) > 0 && tmp) { 2048 if (length_of_file(acl_fname) > 0) { 2050 2049 set_acl_list(biggies_whose_EXATs_we_should_set, acl_fname); 2051 2050 } 2052 mr_free(tmp); 2053 2054 tmp = find_home_of_exe("setfattr"); 2055 if (length_of_file(xattr_fname) > 0 && tmp) { 2051 if (length_of_file(xattr_fname) > 0) { 2056 2052 set_fattr_list(biggies_whose_EXATs_we_should_set, xattr_fname); 2057 2053 } 2058 mr_free(tmp);2059 2054 mr_free(acl_fname); 2060 2055 mr_free(xattr_fname); … … 2624 2619 2625 2620 2621 /** 2622 * @brief Haha. You wish! (This function is not implemented :-) 2623 */ 2624 int 2625 restore_live_from_monitas_server(struct s_bkpinfo *bkpinfo, 2626 char *monitas_device, 2627 char *restore_this_directory, 2628 char *restore_here) 2629 /* NB: bkpinfo hasn't been populated yet, except for ->tmp which is "/tmp" */ 2630 { 2631 FILE *fout; 2632 int retval = 0; 2633 int i; 2634 int j; 2635 struct mountlist_itself the_mountlist; 2636 static struct raidlist_itself the_raidlist; 2637 /** malloc **/ 2638 char tmp[MAX_STR_LEN + 1]; 2639 char command[MAX_STR_LEN + 1]; 2640 char datablock[256 * 1024]; 2641 char datadisks_fname[MAX_STR_LEN + 1]; 2642 long k; 2643 long length; 2644 long long llt; 2645 struct s_node *filelist = NULL; 2646 assert(bkpinfo != NULL); 2647 assert_string_is_neither_NULL_nor_zerolength(monitas_device); 2648 assert(restore_this_directory != NULL); 2649 assert(restore_here != NULL); 2650 2651 sprintf(tmp, "restore_here = '%s'", restore_here); 2652 2653 log_msg(2, tmp); 2654 2655 log_msg(2, "restore_live_from_monitas_server() - starting"); 2656 unlink("/tmp/mountlist.txt"); 2657 unlink("/tmp/filelist.full"); 2658 unlink("/tmp/biggielist.txt"); 2659 if (restore_here[0] == '\0') { 2660 strcpy(bkpinfo->restore_path, MNT_RESTORING); 2661 } else { 2662 strcpy(bkpinfo->restore_path, restore_here); 2663 } 2664 log_msg(3, "FYI FYI FYI FYI FYI FYI FYI FYI FYI FYI FYI"); 2665 sprintf(tmp, "FYI - data will be restored to %s", 2666 bkpinfo->restore_path); 2667 log_msg(3, tmp); 2668 log_msg(3, "FYI FYI FYI FYI FYI FYI FYI FYI FYI FYI FYI"); 2669 sprintf(datadisks_fname, "/tmp/mondorestore.datadisks.%d", 2670 (int) (random() % 32768)); 2671 chdir(bkpinfo->tmpdir); 2672 2673 sprintf(command, "cat %s", monitas_device); 2674 g_tape_stream = popen(command, "r"); // for compatibility with openin_tape() 2675 if (!(fout = fopen(datadisks_fname, "w"))) { 2676 log_OS_error(datadisks_fname); 2677 return (1); 2678 } 2679 for (i = 0; i < 32; i++) { 2680 for (j = 0; j < 4; j++) { 2681 for (length = k = 0; length < 256 * 1024; length += k) { 2682 k = fread(datablock + length, 1, 256 * 1024 - length, 2683 g_tape_stream); 2684 } 2685 fwrite(datablock, 1, length, fout); 2686 g_tape_posK += length; 2687 } 2688 } 2689 paranoid_fclose(fout); 2690 sprintf(command, 2691 "tar -zxvf %s tmp/mondo-restore.cfg tmp/mountlist.txt tmp/filelist.full tmp/biggielist.txt", 2692 datadisks_fname); 2693 run_program_and_log_output(command, 4); 2694 read_header_block_from_stream(&llt, tmp, &i); 2695 read_header_block_from_stream(&llt, tmp, &i); 2696 2697 unlink(datadisks_fname); 2698 read_cfg_file_into_bkpinfo(g_mondo_cfg_file, bkpinfo); 2699 retval = load_mountlist(&the_mountlist, g_mountlist_fname); // in case read_cfg_file_into_bkpinfo strcpy(bkpinfo->media_device, monitas_device); 2700 2701 2702 load_raidtab_into_raidlist(&the_raidlist, RAIDTAB_FNAME); 2703 iamhere("FIXME"); 2704 fatal_error("This will fail"); 2705 sprintf(command, 2706 "grep -E '^%s.*$' %s > %s", 2707 restore_this_directory, g_filelist_full, g_filelist_full); 2708 if (system(command)) { 2709 retval++; 2710 log_to_screen 2711 ("Error(s) occurred while processing filelist and wildcard"); 2712 } 2713 iamhere("FIXME"); 2714 fatal_error("This will fail"); 2715 sprintf(command, 2716 "grep -E '^%s.*$' %s > %s", 2717 restore_this_directory, g_biggielist_txt, g_biggielist_txt); 2718 if (system(command)) { 2719 log_msg(1, 2720 "Error(s) occurred while processing biggielist and wildcard"); 2721 } 2722 sprintf(command, "touch %s", g_biggielist_txt); 2723 run_program_and_log_output(command, FALSE); 2724 // filelist = load_filelist(g_filelist_restthese); // FIXME --- this probably doesn't work because it doesn't include the biggiefiles 2725 retval += restore_everything(bkpinfo, filelist); 2726 free_filelist(filelist); 2727 log_msg(2, "--------End of restore_live_from_monitas_server--------"); 2728 return (retval); 2729 } 2730 2731 /************************************************************************** 2732 *END_RESTORE_LIVE_FROM_MONITAS_SERVER * 2733 **************************************************************************/ 2734 2735 2736 2737 2738 >>>>>>> .fusion-droit.r913 2626 2739 extern void wait_until_software_raids_are_prepped(char *, int); 2627 2740 -
trunk/mondo/src/mondorestore/mondo-rstr-tools-EXT.h
r688 r914 9 9 extern void kill_petris(void); 10 10 extern int mount_cdrom(struct s_bkpinfo *bkpinfo); 11 extern int mount_device(char *, char *, char *, bool);12 11 extern int mount_all_devices(struct mountlist_itself *, bool); 13 12 extern void protect_against_braindead_sysadmins(void); -
trunk/mondo/src/mondorestore/mondo-rstr-tools.c
r903 r914 257 257 mr_free(tmp); 258 258 259 mr_asprintf(&command, "grep - x \"%s\"%s", file, list_fname);259 mr_asprintf(&command, "grep -E '^%s$' %s", file, list_fname); 260 260 mr_free(file); 261 261 … … 854 854 mr_allocstr(bkpinfo->prefix, STD_PREFIX); 855 855 } 856 /* We need to override prefix value in PXE mode as it's857 * already done in start-nfs */858 envtmp1 = getenv("imgname");859 if (envtmp1 == NULL) {860 fatal_error("no imgname variable in environment");861 }862 856 if (strstr(call_program_and_get_last_line_of_output 863 857 ("cat /proc/cmdline"), "pxe")) { 864 mr_allocstr(bkpinfo->prefix,envtmp1); 858 /* We need to override prefix value in PXE mode as it's 859 * already done in start-nfs */ 860 envtmp1 = getenv("imgname"); 861 if (envtmp1 == NULL) { 862 fatal_error("no imgname variable in environment"); 863 } 864 mr_allocstr(bkpinfo->prefix,envtmp1); 865 865 } 866 866 … … 989 989 log_msg(2, "nfs_remote_dir is %s", bkpinfo->nfs_remote_dir); 990 990 } 991 /* We need to override values in PXE mode as it's992 * already done in start-nfs */993 envtmp1 = getenv("nfsmount");994 if (envtmp1 == NULL) {995 fatal_error("no nfsmount variable in environment");996 }997 envtmp2 = getenv("dirimg");998 if (envtmp2 == NULL) {999 fatal_error("no dirimg variable in environment");1000 }1001 991 if (strstr(call_program_and_get_last_line_of_output 1002 992 ("cat /proc/cmdline"), "pxe")) { 1003 mr_allocstr(bkpinfo->nfs_mount,envtmp1); 1004 mr_allocstr(bkpinfo->nfs_remote_dir,envtmp2); 993 /* We need to override values in PXE mode as it's 994 * already done in start-nfs */ 995 envtmp1 = getenv("nfsmount"); 996 if (envtmp1 == NULL) { 997 fatal_error("no nfsmount variable in environment"); 998 } 999 envtmp2 = getenv("dirimg"); 1000 if (envtmp2 == NULL) { 1001 fatal_error("no dirimg variable in environment"); 1002 } 1003 mr_allocstr(bkpinfo->nfs_mount,envtmp1); 1004 mr_allocstr(bkpinfo->nfs_remote_dir,envtmp2); 1005 1005 } 1006 1006 } else if (bkpinfo->backup_media_type == iso) { … … 1036 1036 /* Find out where it's mounted */ 1037 1037 mr_asprintf(&command, 1038 "mount | grep - w %s| tail -n1 | cut -d' ' -f3",1038 "mount | grep -E '^%s' | tail -n1 | cut -d' ' -f3", 1039 1039 g_isodir_device); 1040 1040 log_it("command = %s", command); … … 1238 1238 mr_free(command); 1239 1239 } 1240 mr_asprintf(&command, "grep - x \"/dev/.*\"%s > %s",1240 mr_asprintf(&command, "grep -E '^/dev/.*$' %s > %s", 1241 1241 g_biggielist_txt, g_filelist_imagedevs); 1242 1242 paranoid_system(command); … … 1368 1368 mr_free(tmp); 1369 1369 } else { 1370 mr_asprintf(&tmp, "ls /dev | grep - xq %ss[1-4].*", device);1370 mr_asprintf(&tmp, "ls /dev | grep -Eq '^%ss[1-4].*$'", device); 1371 1371 if (!system(tmp)) { 1372 1372 mr_free(tmp); -
trunk/mondo/src/mondorestore/mondo-rstr-tools.h
r688 r914 9 9 void kill_petris(void); 10 10 int mount_cdrom(struct s_bkpinfo *bkpinfo); 11 int mount_device(char *, char *, char *, bool);12 11 int mount_all_devices(struct mountlist_itself *, bool); 13 12 void protect_against_braindead_sysadmins(void); -
trunk/mondo/src/restore-scripts/mondo/compare-me
r588 r914 261 261 fi 262 262 263 grep -v - x "Files [^:]*:-"/tmp/compare-me.log \263 grep -v -E '^Files [^:]*:-$' /tmp/compare-me.log \ 264 264 | sort -u > /tmp/suspect.files 265 265 -
trunk/mondo/src/restore-scripts/mondo/make-me-bootable
r687 r914 42 42 partno=$root_part 43 43 else 44 driveline=`grep - w /boot$1`45 [ ! "$driveline" ] && driveline=`grep - w /$1`44 driveline=`grep -E '[ ]/boot[ ]' $1` 45 [ ! "$driveline" ] && driveline=`grep -E '[ ]/[ ]' $1` 46 46 partno=`echo "$driveline" | cut -d' ' -f1 | awk -F "[a-z]" '{print $NF;}'` 47 47 # echo "driveline=$driveline --> partno=$partno"
Note:
See TracChangeset
for help on using the changeset viewer.