Recover vmx from log file: Difference between revisions

Jump to navigation Jump to search
Update to parse and retrieve vmx file from current vmware.log files.
(New page: === Recover vmx from log file === On the VMware community forums, [http://communities.vmware.com/people/etung|Eric Tung] has devised a little jewel of code that automates recreating a vmx ...)
 
(Update to parse and retrieve vmx file from current vmware.log files.)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
=== Recover vmx from log file ===
=== Recover vmx from log file ===
On the VMware community forums, [http://communities.vmware.com/people/etung|Eric Tung] has devised a little jewel of code that automates recreating a vmx file from a recent vmware.log file.
On the VMware community forums, [http://communities.vmware.com/people/etung Eric Tung] has devised a little jewel of code that automates recreating a vmx file from a recent vmware.log file.


This is possible as on every boot of a virtual machine, the vmware.log gets a copy from your virtual hardware settings written out into the vmware.log logfile along with some extra information such as the date and time this VM was run.
This is possible as on every boot of a virtual machine, the vmware.log gets a copy from your virtual hardware settings written out into the vmware.log logfile along with some extra information such as the date and time this VM was run.
Line 7: Line 7:


==== vmxRecover.pl code ====
==== vmxRecover.pl code ====
As of Fusion 4, the format of the vmware.log has changed. Here's the script for parsing log files from before Fusion 4
  #!/usr/bin/perl
  #!/usr/bin/perl
  use strict;
  use strict;
  use warnings;   
  use warnings;   
 
  if ($#ARGV != 0) {
  if ($#ARGV != 0) {
     print "Recovers .vmx files from .log files. Usage:\n";
     print "Recovers .vmx files from .log files. Usage:\n";
Line 25: Line 28:
     if (/: vmx\| DICT --- \S/) { last; } # Keep going until the next section
     if (/: vmx\| DICT --- \S/) { last; } # Keep going until the next section
     s/^.*: vmx\| DICT\s*//;    # Strip off the leading timestamp and other stuff
     s/^.*: vmx\| DICT\s*//;    # Strip off the leading timestamp and other stuff
    s/\r//;                    # Get rid of any \r's that may have somehow snuck in
    s/([^=]*=) (.*)/$1 "$2"/;  # Quote the value
    print;
}
New version to use for vmware.log files starting from Fusion 4:
#!/usr/bin/perl
use strict;
use warnings;
if ($#ARGV != 0) {
    print "Recovers .vmx files from .log files. Usage:\n";
    print "$0 logfile > vmxfile\n\n";
    exit;
}
while (<>) {
    # Scan until we reach the config section
    if (/: DICT --- CONFIGURATION/) { last; }
}
while (<>) {
    if (/: DICT --- \S/) { last; } # Keep going until the next section
    s/^.*: DICT\s*//;    # Strip off the leading timestamp and other stuff
     s/\r//;                    # Get rid of any \r's that may have somehow snuck in
     s/\r//;                    # Get rid of any \r's that may have somehow snuck in
     s/([^=]*=) (.*)/$1 "$2"/;  # Quote the value
     s/([^=]*=) (.*)/$1 "$2"/;  # Quote the value
1,274

edits

Navigation menu

Guest

Support my products