Skip to content

Instantly share code, notes, and snippets.

@yazanmonshed
Last active May 5, 2024 09:08
Show Gist options
  • Save yazanmonshed/35c2df2b1baf322815bad67a11b8e7c6 to your computer and use it in GitHub Desktop.
Save yazanmonshed/35c2df2b1baf322815bad67a11b8e7c6 to your computer and use it in GitHub Desktop.
#!/bin/bash
# GLOBAL VARABILES
PATHFILES=$1
PATHBACKUPS=$2
FILEBACKUP=$3
JOBNAME=$4
DATE=$(date "+%d-%m-%Y-%H-%M-%S")
# dir path to backup such as /var/www/
DIRFILES="${PATHFILES}/"
# dir to store backup
DIRBACKUPS="${PATHBACKUPS}/$JOBNAME/"
# dir name such as 'html' inside /var/www/
FILEBACKUPS="${FILEBACKUP}/"
#check if jenkins failed
echo "check if backups path $DIRBACKUPS exsist..."
if [ ! -d $DIRBACKUPS ]; then
echo "$DIRBACKUPS not found...creating..."
mkdir -p $DIRBACKUPS
fi
#[ -z $FILEBACKUPS ] && exit 1
cd $DIRFILES && tar -zcvhf $DIRBACKUPS/${JOBNAME}_site_${DATE}.tar.gz $FILEBACKUPS
# Check if Jenkins Job FAUILED!!
if [ $? -eq 0 ]; then
echo "backup files is SECESSFULLY!!"
else
echo "backups files is FAILED!!"
exit 1
fi
echo "upload backup files to AWS S3 bicket..."
# for test only
export AWS_ACCESS_KEY=$5
export AWS_SECRET_ACCESS=$6
# using for other servers
#export AWS_ACCESS_KEY_ID=$5
#export AWS_SECRET_ACCESS_KEY=$6
#export AWS_DEFAULT_REGION
aws s3 sync $DIRBACKUPS s3://home/backups/$JOBNAME
if [ $? -eq 0 ]; then
echo "upload to S3 is SECCSSFULY!!!"
else
echo "upload to s3 is FAUILED!!!"
exit 1
fi
# delete backup older then 3 days
#find $DIRBACKUPS -mtime +3 -exec rm {} \;
find $DIRBACKUPS/*tar.gz -exec rm {} \;
if [ $? -eq 0 ]; then
echo "retaind backups is SECCSSFULY!!"
exit 0
else
echo "retaind backups is failed!!!"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment