head	1.2;
access;
symbols
	RELENG_2_2_8_RELEASE:1.1.1.1
	RELENG_2_2_7_RELEASE:1.1.1.1
	RELENG_2_2_6_RELEASE:1.1.1.1
	RELENG_2_2_5_RELEASE:1.1.1.1
	RELENG_2_2_2_RELEASE:1.1.1.1
	RELENG_2_2_1_RELEASE:1.1.1.1
	RELENG_2_2_0_RELEASE:1.1.1.1
	RELENG_2_1_7_RELEASE:1.1.1.1.6.1
	RELENG_2_1_6_1_RELEASE:1.1.1.1.6.1
	RELENG_2_1_6_RELEASE:1.1.1.1.6.1
	RELENG_2_2:1.1.1.1.0.8
	RELENG_2_2_BP:1.1.1.1
	RELENG_2_1_5_RELEASE:1.1.1.1.6.1
	RELENG_2_1_0_RELEASE:1.1.1.1
	RELENG_2_1_0:1.1.1.1.0.6
	RELENG_2_1_0_BP:1.1.1.1
	RELENG_2_0_5_RELEASE:1.1.1.1
	RELENG_2_0_5:1.1.1.1.0.4
	RELENG_2_0_5_BP:1.1.1.1
	RELENG_2_0_5_ALPHA:1.1.1.1
	RELEASE_2_0:1.1.1.1
	BETA_2_0:1.1.1.1
	ALPHA_2_0:1.1.1.1.0.2
	perl_4_036_bmake:1.1.1.1
	lwall:1.1.1;
locks; strict;
comment	@# @;


1.2
date	98.09.09.06.49.05;	author markm;	state dead;
branches;
next	1.1;

1.1
date	94.09.10.06.27.47;	author gclarkii;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	94.09.10.06.27.48;	author gclarkii;	state Exp;
branches
	1.1.1.1.6.1
	1.1.1.1.8.1;
next	;

1.1.1.1.6.1
date	96.06.05.02.42.08;	author jkh;	state Exp;
branches;
next	1.1.1.1.6.2;

1.1.1.1.6.2
date	99.09.05.11.11.11;	author peter;	state Exp;
branches;
next	;

1.1.1.1.8.1
date	99.09.05.11.06.55;	author peter;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Old Perl is leaving us. Goodbye, faithful friend.
@
text
@#!/usr/bin/perl

# $Header: /home/ncvs/src/gnu/usr.bin/perl/eg/scan/scanner,v 1.1 1994/09/10 06:27:47 gclarkii Exp $

# This runs all the scan_* routines on all the machines in /etc/ghosts.
# We run this every morning at about 6 am:

#	!/bin/sh
#	cd /usr/adm/private
#	decrypt scanner | perl >scan.out 2>&1
#	mail admin <scan.out

# Note that the scan_* files should be encrypted with the key "-inquire", and
# scanner should be encrypted somehow so that people can't find that key.
# I leave it up to you to figure out how to unencrypt it before executing.

$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin:/usr/ucb:.';

$| = 1;		# command buffering on stdout

print "Subject: bizarre happenings\n\n";

(chdir '/usr/adm/private') || die "Can't cd to /usr/adm/private: $!\n";

if ($#ARGV >= 0) {
    @@scanlist = @@ARGV;
} else {
    @@scanlist = split(/[ \t\n]+/,`echo scan_*`);
}

scan: while ($scan = shift(@@scanlist)) {
    print "\n********** $scan **********\n";
    $showhost++;

    $systype = 'all';

    open(ghosts, '/etc/ghosts') || die 'No /etc/ghosts file';

    $one_of_these = ":$systype:";
    if ($systype =~ s/\+/[+]/g) {
	$one_of_these =~ s/\+/:/g;
    }

    line: while (<ghosts>) {
	s/[ \t]*\n//;
	if (!$_ || /^#/) {
	    next line;
	}
	if (/^([a-zA-Z_0-9]+)=(.+)/) {
	    $name = $1; $repl = $2;
	    $repl =~ s/\+/:/g;
	    $one_of_these =~ s/:$name:/:$repl:/;
	    next line;
	}
	@@gh = split;
	$host = $gh[0];
	if ($showhost) { $showhost = "$host:\t"; }
	class: while ($class = pop(gh)) {
	    if (index($one_of_these,":$class:") >=0) {
		$iter = 0;
		`exec crypt -inquire <$scan >.x 2>/dev/null`;
		unless (open(scan,'.x')) {
		    print "Can't run $scan: $!\n";
		    next scan;
		}
		$cmd = <scan>;
		unless ($cmd =~ s/#!(.*)\n/$1/) {
		    $cmd = '/usr/bin/perl';
		}
		close(scan);
		if (open(PIPE,"exec rsh $host '$cmd' <.x|")) {
		    sleep(5);
		    unlink '.x';
		    while (<PIPE>) {
			last if $iter++ > 1000;		# must be looping
			next if /^[0-9.]+u [0-9.]+s/;
			print $showhost,$_;
		    }
		    close(PIPE);
		} else {
		    print "(Can't execute rsh: $!)\n";
		}
		last class;
	    }
	}
    }
}
@


1.1
log
@Initial revision
@
text
@d3 1
a3 1
# $Header: /home/cvs/386BSD/ports/lang/perl/eg/scan/scanner,v 1.1.1.1 1993/08/23 21:29:44 nate Exp $
@


1.1.1.1
log
@Initial import of Perl 4.046 bmaked

@
text
@@


1.1.1.1.8.1
log
@$Id$ -> $FreeBSD$
@
text
@d3 1
a3 1
# $Header: /home/ncvs/src/gnu/usr.bin/perl/eg/scan/Attic/scanner,v 1.1.1.1 1994/09/10 06:27:48 gclarkii Exp $
@


1.1.1.1.6.1
log
@This 3rd mega-commit should hopefully bring us back to where we were.
I can get it to `make world' succesfully, anyway!
@
text
@d3 1
a3 1
# $Header: /pub/FreeBSD/FreeBSD-CVS/src/gnu/usr.bin/perl/eg/scan/scanner,v 1.1.1.1 1994/09/10 06:27:48 gclarkii Exp $
@


1.1.1.1.6.2
log
@$Id$ -> $FreeBSD$
@
text
@d3 1
a3 1
# $FreeBSD$
@

