If possible, I recommend using an
ssh and
scp based approach - particularly using
scp to create the directory structure on the remote host you want. Secondly, in my experience
system("ping $host") is not sufficent and you should not be using
alarm when
ping has a commandline arguments (
-c NUMBER) that says send
NUMBER pings then quit. There are also flags for timeout (
-t) and wait (
-i).
Net::Ping is also a good option for this. So
ctrl-c is necessary because
ping runs for ever without a flag like
-c. Further more, if you want to use
alarm (maybe as an extreme safety measure), it requires you set a handler for
$SIG{ALRM}. Again, check out the examples in
alarm.