Visit Our UNIX and Linux User Community


Execute a script once a file uploaded to directory


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Execute a script once a file uploaded to directory
# 1  
Old 03-30-2020
Execute a script once a file uploaded to directory

Hello guys,

I would like to execute the below script once a file is uploaded to directory:

Code:
#!/bin/sh
  
log=/var/log/apache2/access.log
words=/root/Scripts/Misc/blockScanners/forbiddenWords.txt
banned=/root/Scripts/Misc/blockScanners/ips.log
adminemail="MYEMAIL"

tail -F "$log" |\
        grep --line-buffered -Ff "$words" |\
        while read -r ip junk; do
        #while read -r ip; do
                grep -qxF "$ip" "$banned" || (
                iptables -A INPUT -s "$ip" -j DROP
                echo `pwd`\n Banned IP "$ip" on: `date` "$log" | grep "$ip" | mail -s "New banned IP: `date`" "$adminemail"
                echo "$ip" >> "$banned"
                )
        done

# Send report with access by Response Codes
RESPONSE=$( cat "$log" | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -rn )
echo Responses Codes "$RESPONSE" on: `date` | mail -s "Responses Codes: `date`" "$adminemail"

Thanks in advance
# 2  
Old 03-30-2020
Have you considered inotifywait(1) provided by the inotify-tools package on some distributions, this can run your script whenever a file appears in specified directories eg:

Code:
inotifywait -m /your/upload/file/path -e create -e moved_to |
    while read dir action file
    do
        # run your script passing the directory, filename and action
        /usr/local/bin/yourscript $dir $file $action
    done

This User Gave Thanks to Chubler_XL For This Post:
# 3  
Old 04-02-2020
Thanks for reply and sorry for the delay.

I did a simple script to monitor after installing inotify-tools, and place it in cron:
Code:
@reboot /root/shellDetector/shellDetect.sh

With grep:
Code:
ps -eaf | grep shellDetect.sh | grep -v grep

The script in not running on boot

Code:
#!/bin/sh
inotifywait -m /home/uvid/www/Uploads -e create -e moved_to |
            while read -r dir action file; do
                            echo "The file '$file' appeared in directory '$dir' via '$action'"
                                    # do something with the file
           done

# 4  
Old 04-02-2020
Did cron log the script's start? Add some logging to your script, so you know that it started, and why and when it exited, either to syslog, or a individual log file.
# 5  
Old 04-02-2020
Well I added this to the cron, rebooted then the cron log is created but empty:

Code:
@reboot /root/shellDetector/shellDetect.sh >> /root/shellDetector/error.log

# 6  
Old 04-02-2020
Add logging to your script!


Anything in the system logs, along this line?
Code:
Apr  2 14:17:02 UsersPC19 CRON[10758]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Possibly an error message? What user is this run under?
# 7  
Old 04-02-2020
Well I checked the syslog, there is a red line on that specific script:

Code:
Apr  2 16:36:09 SERVER CRON[1151]: (root) CMD (/root/shellDetector/shellDetect.sh >> /root/shellDetector/error.log)


Previous Thread | Next Thread
Test Your Knowledge in Computers #273
Difficulty: Easy
In December 1939, Turing solved the essential part of the naval indicator system, which was easier and less complex than the indicator systems used by the other services.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script cannot create directory and move the file to that directory

I have a script, which is checking if file exists and move it to another directory if then mkdir -p ${LOCL_FILES_DIR}/cool_${Today}/monthly mv report_manual_alloc_rpt_A_I_ASSIGNMENT.${Today}*.csv ${LOCL_FILES_DIR}/cool_${Today}/monthly ... (9 Replies)
Discussion started by: digioleg54
9 Replies

2. Red Hat

Chroot: cannot execute /bin/sh: No such file or directory

Hi Expert, I'm having grub problem here: grub> root (hd0,0): Filesystem type is ext2 grub> setup Error 11 : Unrecognized Device String I try install boot loader follow the instruction from 26.2. Booting into Rescue Mode It says : select Continue, it attempts to mount your file... (4 Replies)
Discussion started by: justbow
4 Replies

3. Shell Programming and Scripting

Shell scripting-I need a script which should watch a directory for a file with specific directory

I need a script which should watch a directory for a file with specific directory. If it finds a file in directory, it should search for few specific keyword in the file. if the keyword exists, it should trim string from specific column. The file should be moved to another directory and the a... (8 Replies)
Discussion started by: akashdeepak
8 Replies

4. UNIX for Dummies Questions & Answers

Execute a command in different directory through Unix Script

Hi Gurus, I have the below requirement, Execute an unix script which will pick the latest file from the archive directory and do a grep (on multiple patterns) on that file. processingDir="/usr/apps/irdc/informatica/spsf_sales/TgtFiles/ARCHIVE" filename = 'ls Check* | sort -n -k 2 |... (6 Replies)
Discussion started by: diva_thilak
6 Replies

5. Shell Programming and Scripting

How to execute korn shell script from different directory

Guy's , I need to run korn shell script from different directory, usually I run the script using ./details.ksh in the same directory but now I need to run the file and process details using awk code. Now I am running the script this way but with no luck Directory = home/users/work ... (3 Replies)
Discussion started by: James_Owen
3 Replies

6. UNIX for Dummies Questions & Answers

File uploaded via FTP not visible from Command Line

I am using VSFTPD on amazon web services and have a remote service that uploads files to server via FTP. The files comes through fine and when I log in via FTP client I see them. The problem is the files are supposed to be moved once uploaded but the files are not visible via command line thus the... (2 Replies)
Discussion started by: theman0684
2 Replies

7. Shell Programming and Scripting

Not to execute any graph if the file in a directory is zero bytes

How to code shell script to know if the file in a dirctory is empty i.e., zero byte then not to execute any graph.Please help on this thanks in advance. ---------- Post updated at 08:18 AM ---------- Previous update was at 08:14 AM ---------- I know if clause wil help.my question is how to... (7 Replies)
Discussion started by: vamsi86
7 Replies

8. Shell Programming and Scripting

Execute unix shell script to text file using the script

Hi all, I am beginner in UNIX...I want to use unix shell script to create text.file...I know how to use using by command...can anybody tell me for the script? Thanks i changed the threads title from "tex file" to "text file", because "tex" would probably be misunderstood as reference to... (4 Replies)
Discussion started by: mastercar
4 Replies

9. Shell Programming and Scripting

How to execute script on files in another directory?

Hi Guys, Is there any way I can execute my bash script on files in a different folder than what the script is in? Here is an excerpt of my script: #!/usr/bin/bash input_path="/cygdrive/c/files" output_path="/cygdrive/c/files/data" #script uses files from /cygdrive/c/files directory,... (1 Reply)
Discussion started by: npatwardhan
1 Replies

10. Shell Programming and Scripting

How to make sure a file is uploaded in its entirety

Hi, I have a client who uploads files to my FTP server on a regular basis. Instead of checking the server all the time, I wrote a script that e-mail me to let me know that there is a new file and attaches is it in the e-mail (they're all small compressed archives). The potential issue with the... (4 Replies)
Discussion started by: ph0enix
4 Replies

Featured Tech Videos