I’m working on an assignment where I need to remote connect into my company’s UNIX boxes and parse out a particular set of log entires. I’ve figured out a method for doing so with Grep and the -C flag, but the version of UNIX installed on these machines doesn’t support that functionality. One alternative I’ve considered is doing the work on my local machine through Cygwin and using the local version of Grep to handle this task. However, these logs are especially larges, upwards of 50 megabytes and the connection to the boxes are very slow so it would take several hours to complete the downloads.
My main question, is it possible to remote connect through SSH to a remote server, but be able to invoke the locally installed versions of certain programs? For example, if I SSH into the server, can I make use of the local version of Grep instead of the remote system’s version of Grep?
I’ve attempted to do something similar using Awk and Sed but I haven’t had much success. At this point, aside from a long period of downloading, I’m not sure what other options I have. Any advice? Thanks in advance. 🙂
Even if you could use a remote file with a local application, you’d still be downloading the entirety of the log files – ssh allows output/input to pass between boxes, but you’re not actually running your local grep on the local machine – it’d be the remote machine sending its file to your local grep.
One alternative is to gzip the logfiles before sending them through ssh,e.g.
You’d still be sending the entirety of the log files, but log files tend to compress very well, so you’d only be sending a small fraction of the original data (e.g. a couple megs v.s. 50 uncompressed).
Or, in the alternative, you could try compiling gnu grep from source on the remote machines, assuming there’s an appropriate compiler toolchain on those machines.