Laravel Backup with Bash

Learn how to backup Laravel to Filebase using Bash.

What is Laravel?

Laravel is an open-source web framework built in PHP designed for web application development.

Read below to learn how to backup Laravel to Filebase using Bash.

Prerequisites:

Special thanks to Simon Bennett from SnapShooter for the original version of this tutorial.

1. Start by installing the S3cmd tool on your Laravel server with the following commands:

apt-get install python3 python3-setuptools curl -y

curl -LO https://github.com/s3tools/s3cmd/releases/download/v2.2.0/s3cmd-2.2.0.tar.gz

tar -xvzf s3cmd-2.2.0.tar.gz

cd s3cmd-2.2.0

python3 setup.py install

2. Verify S3cmd was installed correctly using the following command to display the installed version:

s3cmd --version

3. Next, configure S3cmd for use with Filebase:

s3cmd --configure

You will be prompted to enter the following configuration details:

  • Access Key: Filebase Access Key

  • Secret Key: Filebase Secret Key

  • Default Region: us-east-1

  • S3 Endpoint: s3.filebase.com

Overall, your configuration output should resemble the following:

4. Test your configuration using the following command:

S3cmd info s3://filebase-bucket-name

Replace filebase-bucket-name with your Filebase bucket name. The output should resemble the following:

5. Next, login to your Laravel server’s MariaDB instance with the following command:

mysql -u root -p

6. Then, backup the Laravel database with the following command:

mysqldump -u Laraveluser -p Laravel > laravel.sql

7. Run the following S3cmd command to copy the Laravel.sql file into your Filebase bucket:

s3cmd put laravel.sql s3://filebase-bucket-name/

Replace filebase-bucket-name with your Filebase bucket name.

8. Then, run another S3cmd command to copy your Laravel website data into your Filebase bucket as well:

tar -czvf - /var/www/html/laravel | s3cmd put - s3://laravel-filebase/laravel.tar.gz

9. Verify that all files have been uploaded correctly using the following command:

s3cmd ls s3://filebase-bucket-name

The output will resemble the following:

2022-08-08 05:31 10485760 s3://filebase-bucket-name/laravel.sql

2022-08-08 05:31 21163636 s3://filebase-bucket-name/laravel.tar.gz

Last updated

Was this helpful?