In the bash
below I am searching the file virus-scan.log
for the Infected files: 0
line (in bold) and each line for OK
.
If both of these are true then the function execute
is automatically called and processing starts. If both these conditions are not meet then the line in the
file is sent to the corrupt folder. The amount of lines in the file can vary, in this example there are 6, but next time 9 lines. The format is always the same (output from clamscan). Currently, I start the process with a while
loop, that does work but I am trying to automate it. Thank you :).
virus-scan.log
Wed May 17 12:46:26 CDT 2017
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_000_00-0000_Last-First_R_2017_00_00_00_00_00_user_S5-00000-00-run.bam: OK
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_000_00-0000_Last-First_R_2017_00_00_00_00_00_user_S5-00000-00-run.bam.bai: OK
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_000_00-0000_Last-First_R_2017_00_00_00_00_00_user_S5-00000-00-run.vcf: OK
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_001_11-1111_La-Fi_R_2017_00_00_00_00_00_user_S5-00000-00-run.bam: OK
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_001_11-1111_La-Fi_R_2017_00_00_00_00_00_user_S5-00000-00-run.bam.bai: OK
/home/cmccabe/Desktop/NGS/API/R_2017_00_00_00_00_00_user_S5-00000-00-run/IonXpress_001_11-1111_La-Fi_R_2017_00_00_00_00_00_user_S5-00000-00-run.vcf: OK
----------- SCAN SUMMARY -----------
Known viruses: 6284751
Engine version: 0.99.2
Scanned directories: 2
Scanned files: 6
Infected files: 0
Data scanned: 93.80 MB
Data read: 140872.99 MB (ratio 0.00:1)
Time: 15.473 sec (0 m 15 s)
logfile="/home/cmccabe/Desktop/NGS/API/$filename/process.log" # define log
file="/home/cmccabe/virus-scan.log" # file to search
echo "Start folder verification $(date) - File: $file" # write header line to process log
if grep -iq "(Infected files: 0 && OK)" "${file}"; then # look for Infected files: 0 at end on file and OK on each line
echo "The folder is sucessfully verified." >> /home/cmccabe/medex.logs # if found then write to analysis log
else
if [[ -f "$f" ]]; then # if not found
mv -f "$f" /home/cmccabe/Desktop/NGS/API/$filename /home/cmccabe/corrupt # move specific line or lines in file to corrupt folder
echo "The folder has a virus detected and has been moved to the folder at /home/cmccabe/Desktop/corrupt, please check log for reason." >> /home/cmccabe/medex.logs/analysis.log # write to analysis log
fi
fi
echo "End folder verification: $(date) - File: ${file}" # add footer line to process log
done >> "$logfile"
# Call function execute
if [ "/home/cmccabe/medex.logs"="The folder is sucessfully verified" ]; then
execute
else
echo "Nothing to do" && exit
fi
# function to call
execute() {
...
...
...
additional
}