Script to retrieve only recently added records from a file
Shell scripting can be leveraged to accomplish very critical tasks. If you are a administrator then in your day to day tasks you can use small shell scripts to automate few of your daily tasks and save time and energy. Here we had a requirement of reading a log file entries for error messages from a perticular time to time as we wanted to check for any new error entries in log file. So we will discuss about shell script get most recent record and process it.
Below is a simple shell script which can be used to check a file for any new entries added after last run of the script. Below shell script keeps the line number recorded in a file in local folder and checks for the new entries after that line till end of the file. It is done through a while loop where you can add additional tasks or calculations on the new entries as per your requirement like here we are only grepping for any new ERROR messages so that we can analyse and keep a tab on what the application is doing.
There are many examples of reading a file from line x to y and reading new entries from a file, below is one of them. I have added the links to different sites where you can also read more on similar examples.
#!/bin/bash # Script to read only recently added records/entries from a file ####################### #Variables Section ####################### LogFileName=$1 CountFileName=${LogFileName}_Count CCount=`cat $LogFileName | wc -l` OldCount=`cat $CountFileName` if [[ -z "$OldCount" ]]; then export OldCount="0" fi; while read line; do # DO Your Calculations here echo $line | grep ERROR done < <(tail -n "+$OldCount" $LogFileName) echo $CCount >$CountFileName
you can just redirect the output and send it to the administrator too using the mailx command too.
Below are few more examples on web for your reference.
read contents of a file from a given line number
read line from a file by passing line number
Read lines starting from a line number in a bash script
cat line X to line Y on a huge file
In case of any ©Copyright or missing credits issue please check CopyRights page for faster resolutions.