网站快捷备份的七个步骤
21CTO导读:时常进行数据备份是一个好主意,本文介绍使用Laravel的Web应用程序进行备份。
本教程介绍Laravel框架创建应用程序和数据库的备份。我们使用Spatie创建一个好用的开源软件库。
本文的初心来自我之前听过的一个故事。
某公司使用云应用来管理其网站内容。经过一年多的蜜月阶段,一切都按照预期运行。在某一个清晨,他们发现竟然不能登录服务器,提供凭据不对。因为他们在一年多中,没有更改过密码。安全部门经常提示应该每季度更改一次密码。但事实证明,现在的云端和数据库丢失了。
如果有一个良好的备份机制,数据会很快恢复,网站也会很快恢复。
但是事实上,他们没有做备份。
我喜欢从错误中吸取教训,但我更愿意从其他人的错误中吸取教训。这件事摧促我尽快建立自己的备份系统。于是,我决定写一篇关于如何备份网站的教程,这样你就可以从别人的错误中学到东西。
步骤如下:
创建项目
进入终端,转到Laravel项目目录,运行如下命令:
composer require spatie/laravel-backup
接下来运行如下命令,以显示config.php文件内容:
php artisan vendor:publish -provider="Spatie\Backup\BackupServiceProvider"
接下来,再用你喜欢的任一款IDE,转到config文件夹中的backup.php文件。
1)首先设置邮件地址:
'mail' => [
'to' => 'your@example.com',
]
上面的邮件地址用来做备份成功与否的通知,包括运行的详细状态。注意,本地服务器需要安装MTA代理,否则上述操作将无效。也可以用SMTP或第三方的邮件服务处理。
如果不需要使用邮件服务,可以设置为空。
2.在备份文件名中添加前缀(可选)
'filename_prefix' => 'backup-',
3.确保在境文件(.env)中指定了有意义的应用程序名字。
文件备份将生成到/storage/app/<your_meaningful_app_name>/backup-2018-12-18-17-22-38.zip。
4.设置备份占用的空间量限制。
默认情况下,它设置为5G,这个空间太大了。以下是我建议的设置:
'deleteOldestBackupsWhenUsingMoreMegabytesThan' => 800,
5.文件压缩
我们希望备份不占用云端空间,可以使用压缩功能。在config/backup.php中找到以下行:
'database_dump_compressor' => null,
改为:
'database_dump_compressor' => Spatie \ DbDumper \ Compressors \ GzipCompressor :: class,
接下来我启用了备份压缩,效果不错,请看:
6.监控备份
这个库还给我们提供了另一个很棒的命令。用来检查备份运行状态的命令。他也是可配置的,它会检测备份时间是否超过了1天,备份是否超过一定的空间。
php artisan backup:monitor
这是我在备份前运行命令的结果:
然后我运行了备份命令,检查备份的运行状态:
7。自动化你的生活
自动化会成为我们的朋友。我们并不希望每天,每周都运行该命令,备份数据。我们使用cron安排它每晚运行,让我们睡得更踏实,再不用担心丢失任何数据。
小结
前面的公司如果这个库,他就会省下很多时间和钱。至少我们现在知道,不能找借口不备份我们的数据。
以下是GitHub的地址:
https://github.com/spatie/laravel-backup
作者:LukaszMadrzak
译者:洛逸