#!/usr/local/bin/kermit + # # t i m e s t a m p # # A certain host has a syslogger on its Telnet port. If you telnet # to it, you see syslog records scrolling by. But the records do not # have timestamps. This script makes a Telnet connection to the host # and displays the records with timestamps added. It also appends the # timestamped records to a file. # # Requires: C-Kermit 7.0 or Kermit 95 1.1.18 or higher. # # Illustrates: # . Reading lines of text from a communication connection. # . Using local files. # . How to "press any key" to interrupt a loop. # # Author: F. da Cruz, Columbia University, May 2000. .host = syslog.xyzcorp.com ; (*) Replace as needed .file = console.log ; (*) Remove if logfile not wanted. set host \m(host) ; Try to make the connection if fail stop 1 Can't reach \m(host) if def file { ; If logfile wanted fopen /append \%c \m(file) ; open it for appending if fail stop 1 Can't open \m(file) } echo \v(date) \v(time): Begin log - Press any key to stop set quiet on ; Suppress informational messages set ask-timer 1 ; For sampling keyboard set input echo off ; We'll handle input echoing ourselves set command interrupt off ; Disable Ctrl-C while true { ; Loop to read each record input -1 \13 ; (*) Replace with \10 if necessary if fail break .line := \v(date) \v(time): \ftrim(\v(input),\13\10) echo \m(line) if def file fwrite /line \%c \m(line) clear input getc \%x if success break } ; Come here when a key has been pressed or the connection dropped. echo \v(date) \v(time): Closing \m(host)... close connection echo \v(date) \v(time): Closing \m(file)... fclose \%c set command interrupt on set ask-timer 0 end 0 \v(date) \v(time): Done, bye.