All pastes #807868 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-12-07 02:19 UTC
rendered paste body
#!/usr/bin/perl

use Shell;
use Getopt::Long;
use strict;
use warnings;

my $usage  = "ace-mount-sshfs.pl: Quick way to mount a server via SSHFS\n";
   $usage .= "ace-mount-sshfs.pl < --mount> || < --unmount>\n";
my $help = $usage;
   $usage .= "see --help for more options\n";
   $help .= "\t--help	    Display this help message\n";
   $help .= "\t--mount      Mount Server to SSHFS \n";
   $help .= "\t--unmount    Unmount Server from SSHFS\n";
   $help .= "\t--server=    Remote server to mount (default is chinook)\n";
   $help .= "\t--path=      Path on remote server to mount (default is sysdev/htdocs/)";
   $help .= "\t--port=	    SSH port to connect do (default is 60022)\n";
   $help .= "\t--dir=       Local directory to use as mount point (default is /media/wpkg)";
   $help .= "\t--user=      User to connect as [default=root]\n";

my $helpOpt = '';
my $mount = '';
my $unmount = '';
my $rserver = "chinook";
my $rpath = "/var/www/virtual/acetechgroup.com/sysdev/htdocs/";
my $rport = "60022";
my $ruser = "root";
my $ldir = "/media/wpkg";
GetOptions ('help' => \$helpOpt, 'mount' => \$mount, 'unmount' => \$unmount, 'server=s' => \$rserver,
	    'path=s' => \$rpath, 'port=s' => \$rport, 'dir=s' => $ldir, 'user=s' => \$ruser);
fatal $usage unless ($mount || $unmount || $helpOpt);
if($helpOpt) {
	print $help;
	exit(0);
}
elsif($mount) {
	print "Mounting...\n";
	sshfs("-p $rport","$ruser\@$rserver:$rpath","$ldir");
	print "$rserver mounted to $ldir\n";
}
elsif($unmount) {
	print "Unmounting...\n";
	sudo("fusermount","-u $ldir");
	print "Unmounted $rserver from $ldir\n";
}