#!/usr/bin/perl -w # remove OpenVZ specific settings from /etc/sysctl.conf # and move them to /etc/sysctl.d/vzctl.conf use strict; open(TMP, "/etc/sysctl.conf") || die "can't open sysctl.conf"; my $sysctl_out = ''; my $vzctl_out = ''; my $found; my $skip; while(defined(my $line = )) { if ($line =~ m/^#-- OpenVZ begin/i) { $found = 1; $skip = 1; next; } if ($line =~ m/^#-- OpenVZ end/i) { $found = 1; $skip = 0; next; } if ($skip) { if ($line =~ m/^net\.ipv4\.conf\.default\.forwarding\s*=\s*1\s*$/) { $vzctl_out .= "net.ipv4.ip_forward=1\n" } $vzctl_out .= $line; } else { $sysctl_out .= $line; } } close (TMP); if ($found) { if ($vzctl_out) { print "moving openvz sysctl settings to /etc/sysctl.d/vzctl.conf\n"; open (OUT, ">/etc/sysctl.d/vzctl.conf") || die "cant't open '/etc/sysctl.d/vzctl.conf' - $!"; my $res = print OUT $vzctl_out; die "write failed" if !$res; close OUT; } open (OUT, ">/etc/sysctl.conf") || die "cant't open '/etc/sysctl.conf' - $!"; my $res = print OUT $sysctl_out; die "write failed" if !$res; close OUT; } exit(0);