I have tried but failed to create a script to descend into directory /var/log/accounts/ where
there will be several hundred files (randomly named), pickup one of those files, open it and read
the contents into variables. The file is arranged like the following 'username,domain,email,service'.
Once it has read the contents in and run the code that i have created, it will then need to close
that file, delete that file, and go round in a loop until no more files in that directory exist.
Ok, ap3k, lets look at what you said.
# ... descend into directory /var/log/accounts/...
my $directory = '/var/log/accounts/';
opendir DIR, $directory or die $!.$/;
# ... several hundred files ...
my @files = readdir(DIR);
closedir DIR or warn $!.$/;
... go round in a loop until no more files ...
for my $file (@files) {
# ... open it ...
open FILE, $file or die $!.$/;
# ... into variables ... username,domain,email,service ...
my ( $username, $domain, $email, $service ) =
split /,/, <FILE>; # ... read the contents ...
# run the code that i have created
#your code here!
# ... close that file, ...
close FILE or warn $!.$/;
# ... delete that file ...
unlink $file;
}
=cut
That's (deliberatly) not perfect code. You will have to read the docs on readdir, split, open, unlink and probably grep, to get it to do something properly, but that will be a relief from abusing that poor monitor with your head!
Well It's better than the Abottoire, but Yorkshire! | [reply] [d/l] |
This is what i have come up with so far, but it doesn't work. Any suggestions?
#!/usr/bin/perl
@file = `ls /var/log/accounts`;
foreach $file {
open(FILE, "<$file") || die;
@account=<FILE>;
close(FILE);
foreach $account {
($username, $domain, $email, $service) = split(/,/, $account);
#
# Insert rest of my code here
#
}
unlink $file;
}
| [reply] [d/l] |
Try typing ls /var/log/accounts into the command shell. You need to change this line:
open(FILE, "</var/log/accounts/$file") || die;
I make the same mistake all the time.
____________________
Jeremy
I didn't believe in evil until I dated it. | [reply] [d/l] |
thanks. i will give that a go. apart from that, can you see any reason why that script wouldn't work? are there any security issues involved with this?
| [reply] |