Difference between revisions of "Unison.pl"

From Organic Design wiki
m
(make generic so that all config is in wikid.conf)
Line 1: Line 1:
<perl>
 
 
#!/usr/bin/perl
 
#!/usr/bin/perl
 
use Expect;
 
use Expect;
 
require( '/var/www/tools/wikid.conf' );
 
require( '/var/www/tools/wikid.conf' );
$server = 'foo.com';
+
$bak_user = $name unless defined $bak_user;
$port = '12345';
 
  
for $dir (
+
for $dir ( @bak_paths ) {
'media',
+
$cmd = "unison $dir ssh://$bak_user\@$bak_server$dir -batch -force $dir";
'documents',
 
'logs'
 
) {
 
$cmd = "unison $dir ssh://$name\@$server:$port/foo/$dir -batch -force $dir";
 
 
$exp = Expect->spawn( $cmd );
 
$exp = Expect->spawn( $cmd );
 
$exp->expect(
 
$exp->expect(
 
undef,
 
undef,
[ qr/password:/ => sub { my $exp = shift; $exp->send( "$sshpass\n" ); exp_continue; } ],
+
[ qr/password:/ => sub { my $exp = shift; $exp->send( "$bak_pass\n" ); exp_continue; } ],
 
[ qr/Synchronization complete/ => sub { } ],
 
[ qr/Synchronization complete/ => sub { } ],
 
);
 
);
 
$exp->soft_close();
 
$exp->soft_close();
 
}
 
}
</perl>
 
[[Category:PERL]]
 

Revision as of 22:10, 7 July 2009

  1. !/usr/bin/perl

use Expect; require( '/var/www/tools/wikid.conf' ); $bak_user = $name unless defined $bak_user;

for $dir ( @bak_paths ) { $cmd = "unison $dir ssh://$bak_user\@$bak_server$dir -batch -force $dir"; $exp = Expect->spawn( $cmd ); $exp->expect( undef, [ qr/password:/ => sub { my $exp = shift; $exp->send( "$bak_pass\n" ); exp_continue; } ], [ qr/Synchronization complete/ => sub { } ], ); $exp->soft_close(); }