30 |
my $LOG_TIME_FMT = '%Y-%m-%d %H:%M:%S'; # strftime format for logfile |
my $LOG_TIME_FMT = '%Y-%m-%d %H:%M:%S'; # strftime format for logfile |
31 |
my $DIR_TIME_FMT = '%Y%m%d'; # strftime format for backup dir |
my $DIR_TIME_FMT = '%Y%m%d'; # strftime format for backup dir |
32 |
|
|
33 |
|
# define timeout for ping |
34 |
|
my $PING_TIMEOUT = 5; |
35 |
|
|
36 |
my $LOG = '/var/log/backup.log'; # add path here... |
my $LOG = '/var/log/backup.log'; # add path here... |
37 |
#$LOG = '/tmp/backup.log'; |
#$LOG = '/tmp/backup.log'; |
38 |
|
|
75 |
|
|
76 |
my @in_backup; # shares which are backeduped this run |
my @in_backup; # shares which are backeduped this run |
77 |
|
|
78 |
|
# init Net::Ping object |
79 |
my $ping; |
my $ping; |
80 |
if ($use_ping) { |
if ($use_ping) { |
81 |
$ping = new Net::Ping->new("tcp", 2); |
$ping = new Net::Ping->new("syn", 2); |
82 |
# ping will try tcp connect to netbios-ssn (139) |
# ping will try tcp connect to netbios-ssn (139) |
83 |
$ping->{port_num} = getservbyname("netbios-ssn", "tcp"); |
$ping->{port_num} = getservbyname("netbios-ssn", "tcp"); |
84 |
} |
} |
85 |
|
|
86 |
|
# do syn ping to cifs port |
87 |
|
sub host_up { |
88 |
|
my $ping = shift || return; |
89 |
|
my $host_ip = shift || xlog("host_up didn't get IP"); |
90 |
|
my $timeout = shift; |
91 |
|
return 1 if (! $use_ping); |
92 |
|
|
93 |
|
$ping->ping($host_ip,$timeout); |
94 |
|
my $return = 0; |
95 |
|
|
96 |
|
while (my ($host,$rtt,$ip) = $ping->ack) { |
97 |
|
xlog("","HOST: $host [$ip] ACKed in $rtt seconds"); |
98 |
|
$return = 1 if ($ip eq $host_ip); |
99 |
|
} |
100 |
|
return $return; |
101 |
|
} |
102 |
|
|
103 |
my $backup_ok = 0; |
my $backup_ok = 0; |
104 |
|
|
105 |
my $smb; |
my $smb; |
160 |
|
|
161 |
if ($ip) { |
if ($ip) { |
162 |
xlog($share,"IP is $ip"); |
xlog($share,"IP is $ip"); |
163 |
if (($use_ping && $ping->ping($ip)) || 1) { |
if (host_up($ping, $ip,$PING_TIMEOUT)) { |
164 |
if (snap_share($share,$user,$passwd,$workgroup)) { |
if (snap_share($share,$user,$passwd,$workgroup)) { |
165 |
$backup_ok++; |
$backup_ok++; |
166 |
} |
} |