[pve-devel] r5740 - in pve-manager/pve2: bin/cron/daily lib/PVE/API2 www/manager

svn-commits at proxmox.com svn-commits at proxmox.com
Tue Mar 22 09:03:27 CET 2011


Author: dietmar
Date: 2011-03-22 09:03:26 +0100 (Tue, 22 Mar 2011)
New Revision: 5740

Modified:
   pve-manager/pve2/bin/cron/daily/pve
   pve-manager/pve2/lib/PVE/API2/Nodes.pm
   pve-manager/pve2/www/manager/NodeConfig.js
Log:
simple log rotation for task index


Modified: pve-manager/pve2/bin/cron/daily/pve
===================================================================
--- pve-manager/pve2/bin/cron/daily/pve	2011-03-22 06:01:37 UTC (rev 5739)
+++ pve-manager/pve2/bin/cron/daily/pve	2011-03-22 08:03:26 UTC (rev 5740)
@@ -1,14 +1,68 @@
 #!/usr/bin/perl -w
 
 use strict;
-use PVE::APLInfo;
+#use PVE::APLInfo;
 use PVE::SafeSyslog;
+use IO::File;
+use File::Find;
+use File::stat;
 
 initlog ('pvedailycron', 'daemon');
 
-# update appliance info
-if (!PVE::APLInfo::update()) {
-    syslog ('err', "update appliance info failed - see /var/log/pveam.log for details");
+# fixme: update APL info?
+#my $pvecfg = PVE::Config::read_file('pvecfg');
+#my $proxy = ($pvecfg && $pvecfg->{http_proxy}) ? $pvecfg->{http_proxy} : undef;
+
+## update appliance info
+#if (!PVE::APLInfo::update()) {
+#    syslog ('err', "update appliance info failed - see /var/log/pveam.log for details");
+#}
+
+sub cleanup_tasks {
+
+    my $taskdir = "/var/log/pve/tasks";
+    my $filename = "$taskdir/index.1";
+
+    my $fh = IO::File->new($filename, O_RDONLY);
+    return if !$fh;
+
+    my $endtime = 0;
+    while (defined(my $line = <$fh>)) {
+	if ($line =~ m/^(\S+)(\s([0-9A-Za-z]{8})(\s(\S.*))?)?$/) {
+	    $endtime = hex($3);
+	    last;
+	}
+    }
+    close($fh);
+
+    return if !$endtime;
+
+    # print "delete task older that $endtime\n" . localtime($endtime) . "\n";
+
+    my $count = 0;
+
+    my $wanted = sub {
+	my $filename = $_;
+
+	return if $filename !~ m/^UPID:/;
+
+	my $st;
+	if (($st = stat($filename)) && ($st->mtime < $endtime)) {
+	    unlink($filename);
+	    $count++;
+	}
+    };
+
+    foreach my $subdir (qw(0 1 2 3 4 5 6 7 8 9 A B C F E F)) {
+	my $path = "$taskdir/$subdir";
+	find($wanted, $path);
+    }
+
+    if ($count) {
+	syslog('info', "cleanup removed $count task logs");
+    }
 }
 
+cleanup_tasks();
+
 exit (0);

Modified: pve-manager/pve2/lib/PVE/API2/Nodes.pm
===================================================================
--- pve-manager/pve2/lib/PVE/API2/Nodes.pm	2011-03-22 06:01:37 UTC (rev 5739)
+++ pve-manager/pve2/lib/PVE/API2/Nodes.pm	2011-03-22 08:03:26 UTC (rev 5740)
@@ -203,14 +203,13 @@
 
 	my $filename = "/var/log/pve/tasks/index";
 
-	my $bw = File::ReadBackwards->new($filename);
-	die "unable to open file '$filename' - $!\n" if !$bw;
-	
 	my $start = $param->{start} || 0;
 	my $limit = $param->{limit} || 50;
 
 	my $count = 0;
-	while (defined (my $line = $bw->readline)) {
+	my $line;
+
+	my $parse_line = sub {
 	    if ($line =~ m/^(\S+)(\s([0-9A-Za-z]{8})(\s(\S.*))?)?$/) {
 		my $upid = $1;
 		my $endtime = $3;
@@ -226,8 +225,20 @@
 		    $limit--;
 		}
 	    }
+	};
+
+	if (my $bw = File::ReadBackwards->new($filename)) {	
+	    while (defined ($line = $bw->readline)) {
+		&$parse_line();
+	    }
+	    $bw->close();
 	}
-	$bw->close();
+	if (my $bw = File::ReadBackwards->new("$filename.1")) {	
+	    while (defined ($line = $bw->readline)) {
+		&$parse_line();
+	    }
+	    $bw->close();
+	}
 
 	$rpcenv->set_result_count($count);
 

Modified: pve-manager/pve2/www/manager/NodeConfig.js
===================================================================
--- pve-manager/pve2/www/manager/NodeConfig.js	2011-03-22 06:01:37 UTC (rev 5739)
+++ pve-manager/pve2/www/manager/NodeConfig.js	2011-03-22 08:03:26 UTC (rev 5740)
@@ -1347,7 +1347,7 @@
 	    restful: true
 	});
 
-	var page_size = 10;
+	var page_size = 50;
 
 	taskstore.load({
 	    params: {



More information about the pve-devel mailing list