Changeset 2382 in MondoRescue for branches/2.2.10/mondo/src/common/libmondo-files.c
- Timestamp:
- Sep 10, 2009, 2:07:16 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-files.c
r2379 r2382 1059 1059 1060 1060 /** 1061 * Store the client's N FS configuration in files to be restored at restore-time.1062 * Assumes that @c bkpinfo->media_type = n fs, but does not check for this.1061 * Store the client's NETFS configuration in files to be restored at restore-time. 1062 * Assumes that @c bkpinfo->media_type = netfs, but does not check for this. 1063 1063 * @param bkpinfo The backup information structure. Fields used: 1064 * - @c n fs_mount1065 * - @c n fs_remote_dir1064 * - @c netfs_mount 1065 * - @c netfs_remote_dir 1066 1066 * - @c tmpdir 1067 1067 */ 1068 void store_n fs_config()1068 void store_netfs_config() 1069 1069 { 1070 1070 1071 1071 /*@ buffers ******** */ 1072 char *n fs_dev = NULL;1072 char *netfs_dev = NULL; 1073 1073 char *mac_addr = NULL; 1074 char *n fs_mount = NULL;1075 char *n fs_client_ipaddr = NULL;1076 char *n fs_client_netmask = NULL;1077 char *n fs_client_broadcast = NULL;1078 char *n fs_client_defgw = NULL;1079 char *n fs_server_ipaddr = NULL;1074 char *netfs_mount = NULL; 1075 char *netfs_client_ipaddr = NULL; 1076 char *netfs_client_netmask = NULL; 1077 char *netfs_client_broadcast = NULL; 1078 char *netfs_client_defgw = NULL; 1079 char *netfs_server_ipaddr = NULL; 1080 1080 char *tmp = NULL; 1081 1081 char *command = NULL; … … 1084 1084 char *p; 1085 1085 1086 if (! bkpinfo->n fs_mount) {1087 fatal_error("No n fs_mount found !");1088 } 1089 1090 log_it("Storing N FSconfiguration");1091 mr_asprintf(tmp, "%s", bkpinfo->n fs_mount);1086 if (! bkpinfo->netfs_mount) { 1087 fatal_error("No netfs_mount found !"); 1088 } 1089 1090 log_it("Storing Network configuration"); 1091 mr_asprintf(tmp, "%s", bkpinfo->netfs_mount); 1092 1092 p = strchr(tmp, ':'); 1093 1093 if (!p) { 1094 fatal_error("N FSmount doesn't have a colon in it, e.g. 192.168.1.4:/home/nfs");1094 fatal_error("Network mount doesn't have a colon in it, e.g. 192.168.1.4:/home/nfs"); 1095 1095 } 1096 1096 *(p++) = '\0'; 1097 mr_asprintf(n fs_server_ipaddr, "%s", tmp);1098 mr_asprintf(n fs_mount, "%s", p);1097 mr_asprintf(netfs_server_ipaddr, "%s", tmp); 1098 mr_asprintf(netfs_mount, "%s", p); 1099 1099 mr_free(tmp); 1100 1100 1101 1101 /* BERLIOS : there is a bug #67 here as it only considers the first NIC */ 1102 1102 mr_asprintf(command, "ifconfig | tr '\n' '#' | sed s/##// | tr '#' ' ' | tr '' '\n' | head -n1 | cut -d' ' -f1"); 1103 mr_asprintf(n fs_dev, "%s", call_program_and_get_last_line_of_output(command));1103 mr_asprintf(netfs_dev, "%s", call_program_and_get_last_line_of_output(command)); 1104 1104 mr_free(command); 1105 1105 1106 1106 mr_asprintf(command, "%s", "ifconfig | tr '\n' '#' | sed s/##// | tr '#' ' ' | tr '' '\\n' | head -n1 | tr -s '\t' ' ' | cut -d' ' -f7 | cut -d':' -f2"); 1107 mr_asprintf(n fs_client_ipaddr, "%s", call_program_and_get_last_line_of_output(command));1107 mr_asprintf(netfs_client_ipaddr, "%s", call_program_and_get_last_line_of_output(command)); 1108 1108 mr_free(command); 1109 1109 1110 1110 mr_asprintf(command, "%s", "ifconfig | tr '\n' '#' | sed s/##// | tr '#' ' ' | tr '' '\\n' | head -n1 | tr -s '\t' ' ' | cut -d' ' -f9 | cut -d':' -f2"); 1111 mr_asprintf(n fs_client_netmask, "%s", call_program_and_get_last_line_of_output(command));1111 mr_asprintf(netfs_client_netmask, "%s", call_program_and_get_last_line_of_output(command)); 1112 1112 mr_free(command); 1113 1113 1114 1114 mr_asprintf(command, "%s", "ifconfig | tr '\n' '#' | sed s/##// | tr '#' ' ' | tr '' '\\n' | head -n1 | tr -s '\t' ' ' | cut -d' ' -f8 | cut -d':' -f2"); 1115 mr_asprintf(n fs_client_broadcast, "%s", call_program_and_get_last_line_of_output(command));1115 mr_asprintf(netfs_client_broadcast, "%s", call_program_and_get_last_line_of_output(command)); 1116 1116 mr_free(command); 1117 1117 1118 1118 mr_asprintf(command, "%s", "route -n | grep '^0.0.0.0' | awk '{print $2}'"); 1119 mr_asprintf(n fs_client_defgw, "%s", call_program_and_get_last_line_of_output(command));1120 mr_free(command); 1121 1122 if (strlen(n fs_dev) < 2) {1123 fatal_error 1124 ("Unable to find ethN (eth0, eth1, ...) adapter via NFS mount you specified.");1125 } 1119 mr_asprintf(netfs_client_defgw, "%s", call_program_and_get_last_line_of_output(command)); 1120 mr_free(command); 1121 1122 if (strlen(netfs_dev) < 2) { 1123 fatal_error("Unable to find ethN (eth0, eth1, ...) adapter via Network mount you specified."); 1124 } 1125 1126 1126 /******** 1127 * If the N FSdevice that found above is a bonded device,1127 * If the Network device that found above is a bonded device, 1128 1128 * we need to replace it with an ethN device or the 1129 * networking will not start during an N FSrestore.1129 * networking will not start during an Network restore. 1130 1130 * 1131 * If the N FS device in nfs_dev begins with the word "bond", or alb or aft1132 * look for the corresponding slave ethN device and copy it to n fs_dev.1131 * If the Network device in netfs_dev begins with the word "bond", or alb or aft 1132 * look for the corresponding slave ethN device and copy it to netfs_dev. 1133 1133 * Using the common MAC address 1134 1134 ********/ 1135 if (!strncmp(n fs_dev, "bond", 4) || !strncmp(nfs_dev, "alb", 3) || !strncmp(nfs_dev, "aft", 3)) {1136 log_to_screen("Found bonding device %s; looking for corresponding ethN slave device\n", n fs_dev);1137 mr_asprintf(command, "%s", "ifconfig %s | awk '{print $5}' | head -n1", n fs_dev);1135 if (!strncmp(netfs_dev, "bond", 4) || !strncmp(netfs_dev, "alb", 3) || !strncmp(netfs_dev, "aft", 3)) { 1136 log_to_screen("Found bonding device %s; looking for corresponding ethN slave device\n", netfs_dev); 1137 mr_asprintf(command, "%s", "ifconfig %s | awk '{print $5}' | head -n1", netfs_dev); 1138 1138 mr_asprintf(mac_addr, "%s", call_program_and_get_last_line_of_output(command)); 1139 1139 mr_free(command); 1140 1140 1141 mr_asprintf(command, "ifconfig | grep -E '%s' | grep -v '%s' | head -n1 | cut -d' ' -f1", mac_addr,n fs_dev);1141 mr_asprintf(command, "ifconfig | grep -E '%s' | grep -v '%s' | head -n1 | cut -d' ' -f1", mac_addr,netfs_dev); 1142 1142 mr_free(mac_addr); 1143 mr_free(n fs_dev);1144 1145 mr_asprintf(n fs_dev, "%s", call_program_and_get_last_line_of_output(command));1143 mr_free(netfs_dev); 1144 1145 mr_asprintf(netfs_dev, "%s", call_program_and_get_last_line_of_output(command)); 1146 1146 mr_free(command); 1147 1147 1148 log_to_screen("Replacing it with %s\n", nfs_dev); 1149 } 1150 1151 mr_asprintf(tmp, "%s/NFS-DEV", bkpinfo->tmpdir); 1152 write_one_liner_data_file(tmp, nfs_dev); 1153 mr_free(nfs_dev); 1154 mr_free(tmp); 1155 1156 mr_asprintf(tmp, "%s/NFS-CLIENT-IPADDR", bkpinfo->tmpdir); 1157 write_one_liner_data_file(tmp, nfs_client_ipaddr); 1158 mr_free(nfs_client_ipaddr); 1159 mr_free(tmp); 1160 1161 mr_asprintf(tmp, "%s/NFS-CLIENT-NETMASK", bkpinfo->tmpdir); 1162 write_one_liner_data_file(tmp, nfs_client_netmask); 1163 mr_free(nfs_client_netmask); 1164 mr_free(tmp); 1165 1166 mr_asprintf(tmp, "%s/NFS-CLIENT-BROADCAST", bkpinfo->tmpdir); 1167 write_one_liner_data_file(tmp, nfs_client_broadcast); 1168 mr_free(nfs_client_broadcast); 1169 mr_free(tmp); 1170 1171 mr_asprintf(tmp, "%s/NFS-CLIENT-DEFGW", bkpinfo->tmpdir); 1172 write_one_liner_data_file(tmp, nfs_client_defgw); 1173 mr_free(nfs_client_defgw); 1174 mr_free(tmp); 1175 1176 mr_asprintf(tmp, "%s/NFS-SERVER-IPADDR", bkpinfo->tmpdir); 1177 write_one_liner_data_file(tmp, nfs_server_ipaddr); 1178 mr_free(tmp); 1179 mr_free(nfs_server_ipaddr); 1180 1181 mr_asprintf(tmp, "%s/NFS-SERVER-MOUNT", bkpinfo->tmpdir); 1182 write_one_liner_data_file(tmp, bkpinfo->nfs_mount); 1183 mr_free(tmp); 1184 mr_free(nfs_mount); 1185 1186 mr_asprintf(tmp, "%s/NFS-SERVER-PATH", bkpinfo->tmpdir); 1187 write_one_liner_data_file(tmp, bkpinfo->nfs_remote_dir); 1148 log_to_screen("Replacing it with %s\n", netfs_dev); 1149 } 1150 1151 mr_asprintf(tmp, "%s/NETFS-DEV", bkpinfo->tmpdir); 1152 write_one_liner_data_file(tmp, netfs_dev); 1153 mr_free(netfs_dev); 1154 mr_free(tmp); 1155 1156 mr_asprintf(tmp, "%s/NETFS-PROTO", bkpinfo->tmpdir); 1157 write_one_liner_data_file(tmp, bkpinfo->netfs_proto); 1158 1159 mr_asprintf(tmp, "%s/NETFS-CLIENT-IPADDR", bkpinfo->tmpdir); 1160 write_one_liner_data_file(tmp, netfs_client_ipaddr); 1161 mr_free(netfs_client_ipaddr); 1162 mr_free(tmp); 1163 1164 mr_asprintf(tmp, "%s/NETFS-CLIENT-NETMASK", bkpinfo->tmpdir); 1165 write_one_liner_data_file(tmp, netfs_client_netmask); 1166 mr_free(netfs_client_netmask); 1167 mr_free(tmp); 1168 1169 mr_asprintf(tmp, "%s/NETFS-CLIENT-BROADCAST", bkpinfo->tmpdir); 1170 write_one_liner_data_file(tmp, netfs_client_broadcast); 1171 mr_free(netfs_client_broadcast); 1172 mr_free(tmp); 1173 1174 mr_asprintf(tmp, "%s/NETFS-CLIENT-DEFGW", bkpinfo->tmpdir); 1175 write_one_liner_data_file(tmp, netfs_client_defgw); 1176 mr_free(netfs_client_defgw); 1177 mr_free(tmp); 1178 1179 mr_asprintf(tmp, "%s/NETFS-SERVER-IPADDR", bkpinfo->tmpdir); 1180 write_one_liner_data_file(tmp, netfs_server_ipaddr); 1181 mr_free(tmp); 1182 mr_free(netfs_server_ipaddr); 1183 1184 mr_asprintf(tmp, "%s/NETFS-SERVER-MOUNT", bkpinfo->tmpdir); 1185 write_one_liner_data_file(tmp, bkpinfo->netfs_mount); 1186 mr_free(tmp); 1187 mr_free(netfs_mount); 1188 1189 mr_asprintf(tmp, "%s/NETFS-SERVER-PATH", bkpinfo->tmpdir); 1190 write_one_liner_data_file(tmp, bkpinfo->netfs_remote_dir); 1188 1191 mr_free(tmp); 1189 1192 … … 1192 1195 mr_free(tmp); 1193 1196 1194 log_it("Finished storing N FSconfiguration");1197 log_it("Finished storing Network configuration"); 1195 1198 } 1196 1199
Note:
See TracChangeset
for help on using the changeset viewer.