Frank Szczerba on 13 Mar 2012 08:19:24 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Need some script advice


You could just wild card it like you do with the copy:

if [ -f *.zip ]
then
    echo 'Adding to archive'
    cp *.zip /Archive
    mailx -s "All good!" ...
else
    echo 'File not found!'
    mailx -s "Problem making archive! Come look" .....
fi

will work just fine if there's never more than one zip file present. If there might be more than one, you can do:

for zip in *.zip
do
    if [ -f $zip ]
    then
        echo 'Adding to archive'
        cp $zip /Archive
        mailx -s "All good!" ...
    else
        echo 'File not found!'
        mailx -s "Problem making archive! Come look" .....
    fi
done

This would be a bit more robust.

Frank

On Mar 13, 2012, at 10:47 AM, Michael Leone wrote:

> Note that I am not a Linux scripting guy by ANY stretch of the
> imagination. But I do have a simple script that I could use some
> advice on.
> 
> I have a script that we use to transfer FTPed invoices from a machine
> on our DMZ to the trusted LAN. This script reaches out to the DMZ and
> runs a script that that ZIPs up all invoices it finds. Then my script
> RSYNCs it from the DMZ to the trusted LAN. This all works.
> 
> Next, my script extracts out from the zip all the individual files,
> and moves them to a special folder. Then it makes a copy of the zip
> file in an archive folder. Then it deletes the zip from the working
> directory (since we safely have it in the archive).
> 
> Well, somehow the script hiccupped the other day, and did NOT copy the
> zip from the working directory to the archive before deleting it. (no,
> I don't know why yet - possibly a credentials problem, the interactive
> run may not have been done by the right account. That's a separate
> problem).
> 
> What I need to do: verify that the script exists in the archive BEFORE
> deleting. If it doesn't exist, I want it to email me.
> 
> I know I can do (thank you Google, for the example):
> 
> if [ -f zip-file-name]
> then
>     echo 'Adding to archive'
>     cp *.zip /Archive
>     mailx -s "All good!" ...
> else
>     echo 'File not found!'
>     mailx -s "Problem making archive! Come look" .....
> fi
> 
> Here's what I don't know how to do - determine that zip-file-name, so
> I can check it. There will only ever be 1 zip file in the working
> directory. How do I capture that name, to then feed it into the code
> snippet above. I guess what I am asking:
> 
> how can I save the name of the single file that is in this directory
> to a variable? (I will then use that variable in the test above)
> 
> I'm sure it's simple, I just don't know how ...
> 
> -- 
> Mike Leone, <mailto:turgon@mike-leone.com>
> 
> Angels and demons dancing in my head
> Lunatics and monsters underneath my bed
> Media messiahs preying on my fears
> Pop culture prophets playing in my ears
>                       Rush, "Totem"
> ___________________________________________________________________________
> Philadelphia Linux Users Group         --        http://www.phillylinux.org
> Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug