[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: looking for replacement for run (because of critical bug in



On 00-12-26 Ethan Benson wrote:
> On Tue, Dec 26, 2000 at 12:26:10PM +0100, Christian Kurz wrote:
> > 
> > Well, this is a feature that tail on FreeBSD has. If you start it with
> > -F, it will tail you the current file like our tail -f. But if know the
> > logfile will be rotated, it will notice this and reopen the new current
> > one and tail this one. This is a feature that I really miss in GNU tail.

> in fact GNU tail does have this feature, its just done a bit
> differently:

> tail --follow=name --retry /var/log/messages

> ive been using this for ages without any problems, works quite nicely
> with log rotation, tail just outputs a message saying the file has
> been replaced, and follows the new one.

Well, as I'm a bit lazy in typing always this long option names, I just
wrote a patch to support -F and --follow-forever that do the same. As
the patch is very small, I will just attach it to this mail. (Yes, I
will seperately send it to the BTS.)

Ciao
     Christian

-- 
          Debian Developer and Quality Assurance Team Member
    1024/26CC7853 31E6 A8CA 68FC 284F 7D16  63EC A9E6 67FF 26CC 7853
Binary files textutils-2.0.old/src/.tail.c.swp and textutils-2.0/src/.tail.c.swp differ
diff -uNr textutils-2.0.old/src/tail.c textutils-2.0/src/tail.c
--- textutils-2.0.old/src/tail.c	Thu Aug  5 16:38:02 1999
+++ textutils-2.0/src/tail.c	Tue Dec 26 17:33:25 2000
@@ -187,6 +187,7 @@
   {"allow-missing", no_argument, NULL, CHAR_MAX + 1},
   {"bytes", required_argument, NULL, 'c'},
   {"follow", optional_argument, NULL, 'f'},
+  {"follow-forever", optional_argument, NULL, 'F'},
   {"lines", required_argument, NULL, 'n'},
   {"max-unchanged-stats", required_argument, NULL, CHAR_MAX + 2},
   {"max-consecutive-size-changes", required_argument, NULL, CHAR_MAX + 3},
@@ -1311,7 +1312,7 @@
   count_lines = 1;
   forever = from_start = print_headers = 0;
 
-  while ((c = getopt_long (argc, argv, "c:n:f::qs:v", long_options, NULL))
+  while ((c = getopt_long (argc, argv, "c:n:f:F::qs:v", long_options, NULL))
 	 != -1)
     {
       switch (c)
@@ -1357,6 +1358,11 @@
 	    follow_mode = XARGMATCH ("--follow", optarg,
 				     follow_mode_string, follow_mode_map);
 	  break;
+	
+	case 'F':
+	  forever = 1;
+	  follow_mode = Follow_name;
+	  reopen_inaccessible_files =1;
 
 	case CHAR_MAX + 1:
 	  reopen_inaccessible_files = 1;

Attachment: pgpvrQ1LaFtxZ.pgp
Description: PGP signature


Reply to: