Simple Bash backup script - follow-up
Saving the output of find in a variable and looping over it is not a good idea in general: filenames with white-space (space, tab, newline) will be split, so the loop will not work on them.

It would be a little bit better to use a while loop instead:

find ... | while read file
do 
        # ...
done


But this is still not great, as it won't protect you from newlines.
But for your use case, it might be good enough.
For a more robust solution,
see this other post.



The \( ... \) is pointless here:


find $path -maxdepth 1 ! \( -name "*.zip" \) -type f ! -newermt "$yestdayend"



This is the same, but shorter and simpler:

find $path -maxdepth 1 ! -name "*.zip" -type f ! -newermt "$yestdayend"




It's a bit odd to quote "logbackup-" here:


if zip -rv $path/"logbackup-"$moddate.zip $file; then



Literal strings like that don't need quoting in Bash.
On the other hand, it would be good to quote $path:

if zip -rv "$path"/logbackup-$moddate.zip $file; then