#!/usr/bin/perl -w # taritup.pl - a program to archive a # web directory use strict; use Net::Telnet; use Net::FTP; my $host = shift || 'server.onsight.com'; my $user = shift || $ENV{USER}; my $webdir = shift || '/home/httpd/html'; my $tarfile = shift || 'MyTarFile.tar.gz'; my $tardir = '/tmp'; my($pass); print 'Enter password: '; system 'stty -echo'; chop($pass = <STDIN>); system 'stty echo'; print "\n"; print "logging in telnet session...\n"; my $tn = new Net::Telnet(Host => $host); die "connect failed: $!" unless defined $tn; $tn->login($user, $pass) or die "login failed: $!"; print "tarring up $webdir...\n"; $tn->cmd("cd $webdir") or die "failure: $!"; $tn->cmd("/bin/tar cvzf $tardir/$tarfile *") or die "failure: $!"; print "logging in ftp session...\n"; my $ftp = Net::FTP->new($host); die "could not connect: $!" unless $ftp; $ftp->login($user,$pass) or die "login failed: $!"; print "getting $tardir/$tarfile...\n"; $ftp->cwd($tardir) or die "cwd failed: $!"; $ftp->get($tarfile) or die "get failed: $!"; print "quiting ftp...\n"; $ftp->quit or die "quit failed: $!"; print "rm $tarfile...\n"; $tn->cmd("cd $tardir") or die "failure: $!"; $tn->cmd("/bin/rm $tarfile") or die "rm failed: $!"; print "closing telnet...\n"; $tn->close or die "close failed: $!";