====== Telnet Tips ====== ===== Tee Telnet Output to a Unique File ===== Note the use of $@ vs "$*" in the next function that automatically saves an archive of a telnet session. Also note that I remove spaces and colons. (Colons because they screw with opening files directly at line numbers). telnet_log() { curtime=$(date -Iseconds | tr : .) args=$(echo "$*" | tr ' ' '_') telnet $@ | tee $HOME/telnetlog/$args\_${curtime::-5}.log } last_telnet_log() { ls -d1t $HOME/telnetlog/* | head -n 1 } Of course if you do that, you'll want to occasionally (via cronjob?) delete old archives. find $HOME/telnetlog/ -type f -mtime +6 -delete ===== Transfer a file by issuing a Remote Telnet Command ===== Netcat (nc) send the file locally, and nc receive the file at the remote device. function flash-roku { target=$1 filename=$2 port="8081" nc -w 5 $target $port < $filename & { echo \ "cd /tmp && nc -l -p $port > tempfile.txt && " \ "tail tempfile.txt"; \ sleep 10; } | telnet $target } ===== Branching in Expect on whether a remote file exists ===== send "ls --color=never $FNAME\r" expect { -re "\n$FNAME" { expect ":/ #" send "stat $FNAME\r" expect ":/ #" send "echo $FNAME was already there.\r" } "No such file or directory" { expect ":/ #" send "ls ~\r" expect ":/ #" send "echo $FNAME was not there.\r" } } expect ":/ #" Keywords: telnet, linux, nc, netcat