Problem med filehandling!
jeg sidder med et script, der angiveligt bl.a. skal tage min uptime, hostname og et par andre ting og sende til en server og derved lave et mindre uptime race. Mit problem er at den nægter at trække min uptime ud. Scriptet er skrevet i linux og jeg sidder med FreeBSD. Jeg forestiller mig det kunne være problemet, men jeg ved det ikke.#!/usr/bin/perl
use Socket;
use IO::Handle;
open (UPTIME, "</proc/uptime");
$uptime = <UPTIME>;
$uptime =~ /(\d+)/;
$uptime = $1;
$owner = shift || $ENV{USER};
$remote = shift || "fjernet.servername.dk";
$port = 7474;
$iaddr = inet_aton ($remote) || die "Cannot resolve remote host: $remote";
$paddr = sockaddr_in ($port, $iaddr);
$proto = getprotobyname ('tcp');
$hostname = `hostname -f`;
chop ($hostname);
$os = `uname -srm`; chop ($os); $os =~ s/ /-/g;
$string = "uptime $hostname $uptime $os $owner\n";
print $string;
socket (SOCK, PF_INET, SOCK_STREAM, $proto);
connect (SOCK, $paddr) || die "Connect: $!";
autoflush SOCK 1;
print SOCK $string;
$response = <SOCK>;
chop $response;
$response =~ /^okay/ || die "Server responded with '$response'";
Sådan ser det originale script ud. Problemet ligger i de fire linjer med uptime'n. Jeg har testet lige præcis den lille bid på debian og der spytter den et tal ud, f.eks. "4745538", som så må være uptimen i sekunder, men i FreeBSD giver den mig intet.
Nogen gode forslag? :)
På forhånd tak.
