Skip to content

Instantly share code, notes, and snippets.

@hyokosdeveloper
Created February 4, 2023 00:47
Show Gist options
  • Save hyokosdeveloper/e5964f16325e54d2ee6eae26a7661714 to your computer and use it in GitHub Desktop.
Save hyokosdeveloper/e5964f16325e54d2ee6eae26a7661714 to your computer and use it in GitHub Desktop.
Compressed archive of web projects hosted on Linux server using bash
#!/bin/bash
# get size of tgz in kilobytes:
# tar -czf - comingsoon.20230202-040946.tgz | wc -c
# handle remove leading / from member warning
# #tar czfP ./htdocs.tgz ../../htdocs
NOW=$( date '+%F_%H:%M:%S' )
TIMESPAMP=$(date +%Y%m%d-%H%M%S)
UP_DIR=../
# -- Dir Paths
SITE_ROOT=/home/zeuswebserver/lamontcjohnson
RELATIVE_SITE_ROOT=../..
ARCHIVES_ROOT=/home/zeuswebserver/lamontcjohnson/archives
BACKUP_FOLDER=lamontcjohnson_$NOW
# -- Site Parts to backup
SITE=htdocs
ADMIN=admin
COMING_SOON=comingsoon
# ** BEGIN **
echo "==================================="
echo "Starting Backups..."
echo "==================================="
echo ""
echo "Creating timestamped directory to hold backups..."
mkdir $ARCHIVES_ROOT/$BACKUP_FOLDER
cd $ARCHIVES_ROOT/$BACKUP_FOLDER
echo ""
# -- ARCHIVING --
echo "Creating archive $SITE.tgz from folder $RELATIVE_SITE_ROOT/$SITE"
tar czf $SITE.tgz $RELATIVE_SITE_ROOT/$SITE
echo "Backup of -- $SITE -- finished."
echo ""
echo "Creating archive $ADMIN.tgz from folder $RELATIVE_SITE_ROOT/$ADMIN"
tar czf $ADMIN.tgz $RELATIVE_SITE_ROOT/$ADMIN
echo "Backup of -- $ADMIN -- finished."
echo ""
echo "Creating archive $COMING_SOON.tgz from folder $RELATIVE_SITE_ROOT/$COMING_SOON"
tar czf $COMING_SOON.tgz $RELATIVE_SITE_ROOT/$COMING_SOON
echo "Backup of -- $COMING_SOON -- finished."
echo ""
# -- VALIDATING --
echo "==================================="
echo "Checking sizes of archived files.."
echo "==================================="
echo "$SITE.tgz in kilobytes:"
tar -czf - $SITE.tgz | wc -c
echo "$ADMIN.tgz in kilobytes:"
tar -czf - $ADMIN.tgz | wc -c
echo "$COMING_SOON.tgz in kilobytes:"
tar -czf - $COMING_SOON.tgz | wc -c
# ** END **
echo "Backups Complete..."
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment