静看光阴荏苒
不管不顾不问不说也不念

使用Restic备份VPS数据

Restic是一个用Go开发的跨平台数据备份神器,支持众多后端存储服务,例如Local/SFTP/GoogleCloudStorage等等。并且所有备份数据都经过加密,非常安全。

本文将介绍使用SFTP的方式备份一个WordPress博客的站点文件+数据库。

生产机器:157.245.202.243/备份机器:157.245.194.243

首先在生产机器上安装Restic:

wget https://github.com/restic/restic/releases/download/v0.9.5/restic_0.9.5_linux_amd64.bz2
bzip2 -d restic_0.9.5_linux_amd64.bz2
mv restic_0.9.5_linux_amd64 /usr/bin/restic
chmod +x /usr/bin/restic

生成SSH密匙对(一路回车即可):

ssh-keygen -b 4096

将公钥拷贝到备份机器:

ssh-copy-id root@157.245.194.243

创建两个存储库(一个用于备份站点文件,一个用于备份数据库)

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress init
restic -r sftp:157.245.194.243:/opt/restic-repo/wpsql init

将存储库密码写到文件(例如我的两个存储库密码分别是wordpress/wpsql):

echo "wordpress" > ~/restic-password-wordpress
echo "wpsql" > ~/restic-password-wpsql

注意:一定要妥善保管Restic存储库的密码,忘记这个密码你将无法恢复任何备份。

现在手动备份一次看看是不是正常的,备份网站文件:

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress -p ~/restic-password-wordpress backup /var/www/wordpress

备份数据库:

mysqldump --databases wordpress -u -p | restic -r sftp:157.245.194.243:/opt/restic-repo/wpsql -p ~/restic-password-wpsql backup --stdin --stdin-filename wordpress.sql

注:

1.restic的-p参数指定对应存储库的密码文件,尤其是在使用mysqldump备份数据库的时候必须指定这个参数,否则无法正常工作。

2.mysqldump的–databases指定你要备份的数据库名。

3.mysqldump的-u指定你的数据库用户名,-p指定你的数据库用户密码,都不要带空格。

查看备份快照:

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress snapshots
restic -r sftp:157.245.194.243:/opt/restic-repo/wpsql snapshots

从指定快照恢复备份:

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress -p ~/restic-password-wordpress restore 9b678a80 --target /tmp/wordpress

直接从最后一次快照恢复备份:

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress -p ~/restic-password-wordpress restore latest --target /tmp/wordpress

恢复数据库(同理):

restic -r sftp:157.245.194.243:/opt/restic-repo/wpsql -p ~/restic-password-wpsql restore latest --target /tmp

然后使用mysql命令行或者phpmyadmin等工具创建一个同名的空数据库,之后使用下面的命令即可导入数据库:

mysql -uroot -p wordpress < /tmp/wordpress.sql

删除快照:

restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress -p ~/restic-password-wordpress forget 9b678a80

自动备份,这里可以借助crontab完成:

crontab -e

例如每24小时备份一次:

0 0 * * * restic -r sftp:157.245.194.243:/opt/restic-repo/wordpress -p /root/restic-password-wordpress backup /var/www/wordpress
0 0 * * * mysqldump --databases wordpress -u -p | restic -r sftp:157.245.194.243:/opt/restic-repo/wpsql -p /root/restic-password-wpsql backup --stdin --stdin-filename wordpress.sql

更多用法可以参考官方的文档:

https://restic.readthedocs.io/en/latest/index.html

赞(2)
未经允许不得转载:荒岛 » 使用Restic备份VPS数据
分享到: 更多 (0)

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    真jb悲催 yandex卡验证不了upcloud :cry:

    fkyandex5年前 (2019-09-15) Firefox 66.0 Firefox 66.0 Windows 7 x64 Edition Windows 7 x64 Edition回复
    • 全球付试试。。

      LALA5年前 (2019-09-16) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿