[BASH] backup assets for laravel projecet - fourslickz/notes GitHub Wiki
#!/bin/bash
dir=/root/backup_assets
date=$(date +%Y%m%d-%H%M%S)
tanggal=$(date +%d)
bulan=$(date +%m)
tahun=$(date +%Y)
remote_dir=/home/pramuka/backup_assets
remote_host=BACKUP-SERVER-IP-ADDRESS
remote_user=USERNAME
remote_ssh_port=SSH-PORT
backup()
{
echo "starting backup $app..."
path=$dir/$tahun/$bulan/$tanggal
parentDirectory=$path/$app
if [ ! -d "$parentDirectory" ];
then mkdir --parents $parentDirectory;
fi
# copy directory
cd $2
rsync -av --exclude={'framework','logs'} storage $parentDirectory/
rsync -av --no-links public $parentDirectory/
# create zip
cd $path
zip -r ./$app-$date.zip ./$app
# send file to archive server
cd $dir
rsync -avz -e "ssh -p 2244" --relative ./$tahun/$bulan/$tanggal/$app-$date.zip $remote_user@$remote_host:$remote_dir
# clean directory
rm -rf $dir
}
produksi()
{
echo "starting backup produksi"
}
app=$1
case $app
in
project-1) backup $app '/var/www/html/live/project-1' ;;
project-2) backup $app '/var/www/html/live/project-2' ;;
project-3) backup $app '/var/www/html/live/project-3' ;;
project-4) backup $app '/var/www/html/live/project-4' ;;
project-5) backup $app '/var/www/html/live/project-5' ;;
*) echo "Nothing to do"
exit ;;
esac