Help me in this script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help me in this script
# 1  
Old 03-07-2011
Help me in this script

I have the following script which check the users in my server & set them from { 0:0:1 } to { 0:0:0 } which mean their subscription expire. I made it with respect to date that on due date it expire the clients.
format of the clients line is like this.

F: test test 0 0 1 { 0:0:1 } ##19-03-2011

My script is working 100% but i want it to give me a reminder as well that before a user expire I get the alert 7 days ago before it expire in the form of a text file in Var/Config. any help will be appreciated a lot. I am confuse how to -7 days from the script so it work for me. Plz edit my script & help me

PHP Code:
#!/bin/sh 
#Automated clients expire check script. 
#Purpose: checks if a clients date is expired. 
## ## ## written by David Tan ## ## ## ## 
USER=taree65 
TEMP
=/tmp 
JOB
=/check-expire 
TARGET1
=/var/etc 
TARGET2
=/var/config 
FILE1
=CCcam.cfg 
FILE2
=all_expired_clients.txt 
FILE3
=expired_clients.txt 
TARGET2
=/var/config 
TARGET1
=/var/etc 
BACKUPDIR
=/var/backup 
CONFIGOLD
=CCcam.old 
    
if test -f $TARGET2/$FILE1 then 
echo "New Config Present for 3AXES" 
if test -d $BACKUPDIR then 
if test -f $BACKUPDIR/$CONFIGOLD then 
            
echo "Removing OLD config file from backup directory" 
            
rm $BACKUPDIR/$CONFIGOLD 
            
else 
            echo 
"No OLD config to remove." 
            
fi 
            
if test -f $BACKUPDIR/$FILE1 then 
            
echo "Renaming Backup to old config" 
            
cp $BACKUPDIR/$FILE1 $BACKUPDIR/$CONFIGOLD 
            rm $BACKUPDIR
/$FILE1 
                      
else 
                      echo 
"No Backupfile present yet" 
                      
fi 
                      
if test -f $TARGET1/$FILE1 then 
                      
echo "Copying Original config to Backup directory" 
                      
cp $TARGET1/$FILE1 $BACKUPDIR 
                      rm $TARGET1
/$FILE1 
            
else 
            echo 
"No Original Config File Present!?!?" 
            
fi 
            
else 
            echo 
"Backup directory does not exist." 
            
echo "making new directory" 
            
mkdir $BACKUPDIR 
            
if test -f $TARGET1/$FILE1 then 
            
echo "Copying Original config to Backup directory" 
            
cp $TARGET1/$FILE1 $BACKUPDIR 
            
else 
            echo 
"No Original Config File Present!?!?" 
            
fi 
            fi 
            
echo "Moving New config file to "$TARGET1 
            cp $TARGET2
/$FILE1 $TARGET1 
            rm $TARGET2
/$FILE1 
       
else 
       echo 
"No New Config present, Nothing to process" 
fi 
sleep 5 
echo "read the config for expired clients" 
grep $(date +%d-%m-%Y$TARGET1/$FILE1 >>$TARGET1/$FILE3 
sleep 1 
echo "sed -i '/$(date +%d-%m-%Y)/d' /var/etc/CCcam.cfg" $TEMP/$JOB 
chmod 755 $TEMP
/$JOB 
$TEMP
/$JOB 
rm $TEMP
/$JOB 
echo "set expired clients to no share !!" 
sleep 1 
sed 
's/{ 0:0:1 }/{ 0:0:0 } ## expired !!/g' $TARGET1/$FILE3 >> $TARGET2/$FILE1 
sleep 1 
cat $TARGET1
/$FILE3 >> $TARGET2/$FILE2 
sleep 2 
echo "adding old clients and settings to config" 
sleep 1 
cat $TARGET1
/$FILE1 >> $TARGET2/$FILE1 
sleep 1 
echo "removing old files" 
rm $TARGET1/$FILE3 
rm $TARGET1
/$FILE1 
sleep 2 
echo "Moving New config file to /var/etc" 
cp $TARGET2/$FILE1 $TARGET1 
chown $USER $TARGET2
/$FILE2 
chown $USER $TARGET2
/$FILE1 
chmod 777 $TARGET2
/$FILE1 
exit 
# 2  
Old 03-07-2011
Unfortunately Unix doesnt have this facility to calculate dates using a command. But I have came across a script which might be useful.

https://www.unix.com/unix-dummies-que...html#post16559

Hope that does the job for you.
# 3  
Old 03-07-2011
Can't u help me in modifing my currently exsisting script with 7 days because it is working well as i explained
# 4  
Old 03-07-2011
What Operating System and version are you using?
Do you have the GNU version of the date command?


No changes, just a re-post of your script with indentation which I can follow:

Code:
#!/bin/sh 
#Automated clients expire check script. 
#Purpose: checks if a clients date is expired. 
## ## ## written by David Tan ## ## ## ## 
USER=taree65 
TEMP=/tmp 
JOB=/check-expire 
TARGET1=/var/etc 
TARGET2=/var/config 
FILE1=CCcam.cfg 
FILE2=all_expired_clients.txt 
FILE3=expired_clients.txt 
TARGET2=/var/config 
TARGET1=/var/etc 
BACKUPDIR=/var/backup 
CONFIGOLD=CCcam.old 
if test -f $TARGET2/$FILE1 ; then 
        echo "New Config Present for 3AXES" 
        if test -d $BACKUPDIR ; then 
                if test -f $BACKUPDIR/$CONFIGOLD ; then 
                        echo "Removing OLD config file from backup directory" 
                        rm $BACKUPDIR/$CONFIGOLD 
                else 
                        echo "No OLD config to remove." 
                fi
                if test -f $BACKUPDIR/$FILE1 ; then 
                        echo "Renaming Backup to old config" 
                        cp $BACKUPDIR/$FILE1 $BACKUPDIR/$CONFIGOLD 
                        rm $BACKUPDIR/$FILE1 
                else 
                        echo "No Backupfile present yet" 
                fi 
                if test -f $TARGET1/$FILE1 ; then 
                        echo "Copying Original config to Backup directory" 
                        cp $TARGET1/$FILE1 $BACKUPDIR 
                        rm $TARGET1/$FILE1 
                else 
                        echo "No Original Config File Present!?!?" 
                fi 
        else 
                echo "Backup directory does not exist." 
                echo "making new directory" 
                mkdir $BACKUPDIR 
                if test -f $TARGET1/$FILE1 ; then 
                        echo "Copying Original config to Backup directory" 
                        cp $TARGET1/$FILE1 $BACKUPDIR 
                else 
                        echo "No Original Config File Present!?!?" 
                fi 
        fi 
        echo "Moving New config file to "$TARGET1 
        cp $TARGET2/$FILE1 $TARGET1 
        rm $TARGET2/$FILE1 
else 
       echo "No New Config present, Nothing to process" 
fi 
sleep 5 
echo "read the config for expired clients" 
grep $(date +%d-%m-%Y) $TARGET1/$FILE1 >>$TARGET1/$FILE3 
sleep 1 
echo "sed -i '/$(date +%d-%m-%Y)/d' /var/etc/CCcam.cfg" > $TEMP/$JOB 
chmod 755 $TEMP/$JOB 
$TEMP/$JOB 
rm $TEMP/$JOB 
echo "set expired clients to no share !!" 
sleep 1 
sed 's/{ 0:0:1 }/{ 0:0:0 } ## expired !!/g' $TARGET1/$FILE3 >> $TARGET2/$FILE1 
sleep 1 
cat $TARGET1/$FILE3 >> $TARGET2/$FILE2 
sleep 2 
echo "adding old clients and settings to config" 
sleep 1 
cat $TARGET1/$FILE1 >> $TARGET2/$FILE1 
sleep 1 
echo "removing old files" 
rm $TARGET1/$FILE3 
rm $TARGET1/$FILE1 
sleep 2 
echo "Moving New config file to /var/etc" 
cp $TARGET2/$FILE1 $TARGET1 
chown $USER $TARGET2/$FILE2 
chown $USER $TARGET2/$FILE1 
chmod 777 $TARGET2/$FILE1 
exit

# 5  
Old 03-07-2011
I am using Ubuntu 10.10
# 6  
Old 03-07-2011
Can you change the date format from 19-03-2011 to 20110319?

with GNU date, you can get the date that 7 days later.

Code:
d=$(date -d "+7 days " +%Y%m%d)

So compare the var d with the user's expire day, if it is less, then you can send alert mail.
# 7  
Old 03-07-2011
This should do it:

Code:
d=$(date -d +7days +%d-%m-%Y) 
fgrep "##$d" $TARGET1/$FILE1 | while read f client rest
do
    echo "Warning client $client will expire on $d" >> $TARGET2/expire_soon.txt
done

Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question