Bash Assignment
Budget: $10 – $30 USD
Basic Functional Requirements
Your server access log must provide the user with all the following functionality:
1. Run a search on one (1) server access log of the user’s choosing based on one (1) field criteria input,
also of the user’s choosing, e.g. PROTOCOL=`TCP`
2. The results of each search the user conducts are to be displayed to the terminal and also exported to
a .csv file with a name of the user’s choosing. Each results file created must be uniquely named so
that the results files of previous searches are not overwritten
3. Any log file records in which the CLASS field is set to normal are to be automatically excluded from
the search results printed to the screen/written to file
4. When the PACKETS and/or BYTES fields are selected by the user as search criteria, the user should
be able to choose greater than (-gt), less than (-lt), equal to (-eq) or not equal to !(-eq) the specific
value they provide, e.g. find all matches where PACKETS > `10`
5. When the SRC IP or DEST IP fields are used as search criteria, the user should only need provide a
partial search string rather than a complete value, e.g. search using the partial string EXT rather than
the exact value EXT_SERVER
Advanced Functional Requirements
Implement two (2) of the following advanced functionalities:
1. Enable the log tool script to run searches on a single server access log of the user’s choice using both
two (2) and three (3) field criteria inputs, e.g. find all matches where PROTOCOL=`TCP` and SRC
IP=`ext` and PACKETS > `10`
2. Enable the log tool script to run searches on all available server access logs based on one (1) field
criteria input, e.g., find all matches where PROTOCOL=`TCP` in all available log files
3. When the PACKETS and/or BYTES fields are used as search criteria, totals for each of these should
also be calculated and displayed as the final row of the search results printed to terminal/file
Your server access log must provide the user with all the following functionality:
1. Run a search on one (1) server access log of the user’s choosing based on one (1) field criteria input,
also of the user’s choosing, e.g. PROTOCOL=`TCP`
2. The results of each search the user conducts are to be displayed to the terminal and also exported to
a .csv file with a name of the user’s choosing. Each results file created must be uniquely named so
that the results files of previous searches are not overwritten
3. Any log file records in which the CLASS field is set to normal are to be automatically excluded from
the search results printed to the screen/written to file
4. When the PACKETS and/or BYTES fields are selected by the user as search criteria, the user should
be able to choose greater than (-gt), less than (-lt), equal to (-eq) or not equal to !(-eq) the specific
value they provide, e.g. find all matches where PACKETS > `10`
5. When the SRC IP or DEST IP fields are used as search criteria, the user should only need provide a
partial search string rather than a complete value, e.g. search using the partial string EXT rather than
the exact value EXT_SERVER
Advanced Functional Requirements
Implement two (2) of the following advanced functionalities:
1. Enable the log tool script to run searches on a single server access log of the user’s choice using both
two (2) and three (3) field criteria inputs, e.g. find all matches where PROTOCOL=`TCP` and SRC
IP=`ext` and PACKETS > `10`
2. Enable the log tool script to run searches on all available server access logs based on one (1) field
criteria input, e.g., find all matches where PROTOCOL=`TCP` in all available log files
3. When the PACKETS and/or BYTES fields are used as search criteria, totals for each of these should
also be calculated and displayed as the final row of the search results printed to terminal/file