Thanks a lot! I will look into this right away. see ya!
-- "JupiterHost.Net" <[EMAIL PROTECTED]> wrote: > > > Harold Castro wrote: > > Good day! > > Hello, > > > > I'm new to perl but not that much of a newbie. > In > > fact I was in the peak of learning perl but then I > > have to focus my concentration with work when I > got my > > first job. I will be a trainee for 3 months and my > > first assignment is to administer our squid > > proxies(4). > > I line with this, the work target form includes > a > > step in which I would have to learn how to update > > every config files of squid automatically, > meaning, if > > my boss updates a squid config on one machine, > changes > > will also be applied on other squid proxies not to > > mention telling them also to run 'squid -k > reconfig' > > to reflect the changes. > > > > I need a hint on how I will going to accomplish > this > > using perl. Perhaps a program sitting on every > proxy > > machine and then another program which will tell > that > > program regarding the squid config changes and the > > first program will issue a line like 'open SQUID, > > "/usr/local/squid/sbin/squid -k reconfig |" upon > > hearing the advertisement from the second program. > > > > > > What do you think? Do you know another better way > to > > do it? Any insight about the concept or the > modules I > > can use, if theres any.. > > Can you do it via SSH? > > If so look on search.cpan.org for Net::SSH > (http://search.cpan.org/~ivan/Net-SSH-0.08/SSH.pm) > > Sytax wise this code is ok but it is untested. > It should give you a start :) > > #!/usr/bin/perl > > use strict; > use warnings; > use Net::SSH qw(ssh); > > my $localconf = '/usr/local/squid.conf'; > my $resquid = 'squid -k reconfig'; > > my %sync = ( > 'Label 1' => { > user => '[EMAIL PROTECTED]', > command => ['scp [EMAIL PROTECTED]:$localconf > $localconf',$resquid] > }, > 'Label 2' => { > user => '[EMAIL PROTECTED]', > command => ['scp [EMAIL PROTECTED]:$localconf > $localconf',$resquid] > } > ); > > for my $l(keys %sync) { > print "Staring $l...\n"; > for(@{ $sync{$l}->{command} }) { > ssh($sync{$l}->{user},$_); > } > print "Done\n"; > } > > > Then just execute it when /usr/local/squid.conf is > updated an voila all > good :) > > You could always improve it, add error handling for > ssh() so you knwo > what its doing, create %sync based on a database, > etc... > > HTH > > Lee.M - JupiterHost.Net > __________________________________ Do you Yahoo!? Check out the new Yahoo! Front Page. www.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>