To run that ZIP operation in the background and keep it running after SSH disconnects:
nohup zip -r public_html.zip public_html/ > zip.log 2>&1 &
Check whether it is still running
ps aux | grep '[z]ip -r'
Watch the log
tail -f zip.log
Check the ZIP size
ls -lh public_html.zip
When finished, you can verify the archive:
unzip -t public_html.zip
If public_html.zip already exists and you want to replace it, remove it first:
rm -f public_html.zip
nohup zip -r public_html.zip public_html/ > zip.log 2>&1 &
