You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
15 years ago
|
#!/usr/bin/env perl
|
||
|
|
||
|
# Uptime script for Konversation
|
||
|
# made by Magnus Romnes (gromnes@online.no)
|
||
|
# The script might be uncompatible with other unix variants than linux.
|
||
|
# only tested on Debian GNU/Linux Sid
|
||
|
# use the code for whatever you wish :-)
|
||
|
|
||
|
|
||
|
$PORT = shift;
|
||
|
$SERVER = shift;
|
||
|
$TARGET = shift;
|
||
|
|
||
|
$PLATFORM = `uname -s`;
|
||
|
chomp($PLATFORM);
|
||
|
if($PLATFORM eq "FreeBSD") {
|
||
|
$BOOTTIME = `sysctl kern.boottime`;
|
||
|
$BOOTTIME =~ s/.* sec = ([0-9]+).*/\1/;
|
||
|
$TIMENOW = `date +%s`;
|
||
|
$seconds = $TIMENOW - $BOOTTIME;
|
||
|
} else {
|
||
|
$UPTIME = `cat /proc/uptime`;
|
||
|
if (not $UPTIME) {
|
||
|
exec 'dcop', $PORT, 'default', 'info', 'Could not read uptime. Check that /proc/uptime exists.';
|
||
|
}
|
||
|
@uparray = split(/\./, $UPTIME);
|
||
|
$seconds = $uparray[0];
|
||
|
}
|
||
|
|
||
|
if($seconds >= 86400)
|
||
|
{
|
||
|
$days = int($seconds/86400);
|
||
|
$seconds = $seconds-($days*86400);
|
||
|
}
|
||
|
if($seconds >= 3600)
|
||
|
{
|
||
|
$hours = int($seconds/3600);
|
||
|
$seconds = $seconds-($hours*3600);
|
||
|
}
|
||
|
if($seconds > 60)
|
||
|
{
|
||
|
$minutes = int($seconds/60);
|
||
|
}
|
||
|
if( $days && $hours ) {
|
||
|
exec 'dcop', $PORT, 'default', 'say', $SERVER, $TARGET, "Uptime: $days days, $hours hours and $minutes minutes";
|
||
|
}
|
||
|
elsif( !$days && $hours ) {
|
||
|
exec 'dcop', $PORT, 'default', 'say', $SERVER, $TARGET, "Uptime: $hours hours and $minutes minutes";
|
||
|
}
|
||
|
elsif( $days && !$hours ) {
|
||
|
exec 'dcop', $PORT, 'default', 'say', $SERVER, $TARGET, "Uptime: $days days and $minutes minutes";
|
||
|
}
|
||
|
elsif( !$days && !$hours ) {
|
||
|
exec 'dcop', $PORT, 'default', 'say', $SERVER, $TARGET, "Uptime: $minutes minutes";
|
||
|
}
|
||
|
|