Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/bash
- #GNU bash, version 4.3.33(1)-release (x86_64-redhat-linux-gnu)
- ####Environment block####
- param_key=$1
- param_type=$2
- curr_dir=`dirname "$BASH_SOURCE"`
- file=$curr_dir"/GTS_LINUX-MULTI-001A.results"
- fl_buff=$curr_dir"/buf_fl.tmp"
- #last_buf=$curr_dir"/buf_last.tmp"
- ptrn_mv_start=MEASURED_VALUE
- ptrn_mv_end=MEASURED_VALUE_EOF
- ln_mv_start=`grep -nw $ptrn_mv_start -F $file|awk -F : '{print $1}'`
- ln_mv_end=`grep -nw $ptrn_mv_end -F $file|awk -F : '{print $1}'`
- ln_indx=1
- ####End of environment block###
- #####Function Block#####
- # Function is parse file from $file variable. Any line between $ptrn_mv_start and $ptrn_mv_end would be writen to
- # buffer file from $fl_buff variable.
- function file_parser () {
- cat /dev/null > $fl_buff
- while read line
- do
- if [[ $ln_indx -gt $1 && $ln_indx -lt $2 ]]
- then
- echo $line >> $fl_buff
- fi
- (( ln_indx +=1 ))
- done < "$file"
- }
- #Function for parse buffer file from $fl_buff variable. It check parameters and do filtration of output.
- function str_parser_any () {
- ###Check input parameters###
- #Checking of input parameters, sorting of output and removing of duplicates
- if [ "$1" == "-t" ]
- then
- if [ "$2" == "f" ]
- then
- echo "Output filtered by files "
- str_parser_f_bufer=`cat $fl_buff | grep ^- | awk -F ";" '{print $2 "\t" $3 }' |sort -u`
- elif [ "$2" == "d" ]
- then
- echo "Output filtered by directories "
- str_parser_f_bufer=`cat $fl_buff | grep ^d | awk -F ";" '{print $2 "\t" $3 }' |sort -u`
- else
- echo "Output not filtered. Use f and d keys"
- str_parser_f_bufer=`cat $fl_buff | awk -F ";" '{print $2 "\t" $3 }' |sort -u`
- fi
- else
- str_parser_f_bufer=`cat $fl_buff | awk -F ";" '{print $2 "\t" $3 }' |sort -u`
- fi
- ###End check input parameters###
- ###Checking of last login date and output to console
- buf_indx=`echo "$str_parser_f_bufer"| wc -l`
- echo "$users_lld"|
- for (( indx=1; indx <=buf_indx; indx++))
- do
- str_parser_uname=`echo "$str_parser_f_bufer"| awk "FNR == $indx {print}" | awk '{print $1}'`
- str_parser_gname=`echo "$str_parser_f_bufer"| awk "FNR == $indx {print}" | awk '{print $2}'`
- str_parser_usr_ltime=`last $str_parser_uname | head -n 1 | awk '{print $4 " " $5 " " $6 }'`
- echo "User:""$str_parser_uname" " " "group:" "$str_parser_gname" " " " last login at: " "$str_parser_usr_ltime"
- done
- }
- #####End of function block#####
- ######Function execution block ############
- file_parser $ln_mv_start $ln_mv_end
- str_parser_any $param_key $param_type
- ######End of function execution block #####
- rm $fl_buff
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement