温馨提示×

linux laravel如何备份

小樊
37
2026-09-22 10:48:35
栏目: 智能运维

在 Linux 服务器上备份 Laravel 项目,通常包含 代码、数据库、上传文件(storage) 三部分。下面给你几种常见、实用的备份方案。


一、最基础的手动备份(适合小项目)

1. 备份项目代码和上传文件

tar -czf laravel_backup_$(date +%F).tar.gz /var/www/laravel

包含:

  • 项目代码
  • storage/app(用户上传文件)
  • 配置(.env 需注意安全)

2. 备份数据库(MySQL 示例)

mysqldump -u root -p laravel_db > laravel_db_$(date +%F).sql

二、使用 Laravel 官方推荐方式(spatie/laravel-backup)

1. 安装备份包

composer require spatie/laravel-backup

2. 发布配置

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

3. 配置文件

config/backup.php

'backup' => [
    'source' => [
        'files' => [
            'include' => [
                base_path(),
            ],
            'exclude' => [
                base_path('vendor'),
                base_path('node_modules'),
            ],
        ],
        'databases' => ['mysql'],
    ],
],

4. 手动备份

php artisan backup:run

5. 自动定时备份(crontab)

crontab -e

添加:

0 2 * * * cd /var/www/laravel && php artisan backup:run >> /dev/null 2>&1

✅ 优点:

  • 自动备份代码 + 数据库
  • 可上传到云(S3、OSS)
  • 支持清理旧备份

三、数据库单独定时备份(推荐)

脚本示例

/scripts/backup_db.sh

#!/bin/bash
DATE=$(date +%F)
mysqldump -u root -p密码 laravel_db > /backup/laravel_$DATE.sql

加权限:

chmod +x /scripts/backup_db.sh

定时:

0 3 * * * /scripts/backup_db.sh

四、只备份重要目录(轻量方案)

rsync -avz /var/www/laravel/app /var/www/laravel/config /var/www/laravel/routes /backup/laravel_code
rsync -avz /var/www/laravel/storage/app /backup/laravel_storage

五、备份建议(生产环境)

✅ 必须备份:

  • .env
  • storage/app
  • 数据库

✅ 不建议备份:

  • vendor
  • node_modules
  • cache

✅ 推荐策略:

  • 每天增量
  • 每周全量
  • 备份到异地 / 云存储

如果你愿意,可以告诉我:

  • 用的是 MySQL / PostgreSQL
  • 是否 生产环境
  • 是否用 Docker / 面板(宝塔等)

我可以给你一套可直接用的备份脚本。

0 踩