(部分回答,因为我熟悉AWS,而不是Google Drive。)
在我看来,将WordPress DB存储在云服务的某个位置与将站点托管在虚拟服务器或云服务器上一样糟糕(给定的虚拟化平台都允许您重置服务器的根密码-尽管通常需要重新启动-因此,如果有人发现您的控制面板登录,您的整个机器都会面临风险。)
确保您已跟踪basic security precautions 并考虑two-factor-auth 该插件即使安全性最低,也会在用户登录时向其电子邮件地址发送一次性密码(用户的电子邮件也需要被黑客入侵,黑客才能访问WordPress仪表板)
就个人而言,我的许多网站都使用Linode。我使用their backup service 作为预防措施,但您只能完全还原整个驱动器,因此,如果您意外地删除了单个文件或目录,并且希望保留自备份完成以来计算机上已更改的所有其他内容,则没有任何帮助。
backup2l 是一个免费/简单/可靠的命令行备份实用程序,允许您单独恢复文件。它使用众所周知的Linux命令,如tar
和gzip
. (大多数发行版中都有相应的软件包,无需手动安装。)
默认情况下,它每天运行,但它会执行增量备份,因此您可以随时进行配置。
在我的/etc/backup2l.conf
要在备份运行之前自动转储SQL数据库,请执行以下操作:
# This user-defined bash function is executed before a backup is made
PRE_BACKUP ()
{
# e. g., shut down some mail/db servers if their files are to be backup\'ed
# On a Debian system, the following statements dump a machine-readable list of
# all installed packages to a file.
echo " writing dpkg selections to /root/.dpkg-selections.log..."
dpkg --get-selections | diff - /root/.dpkg-selections.log > /dev/null || dpkg --get-selections > /root/.dpkg-selections.log
echo " dumping databases"
for i in /var/lib/mysql/*/; do
name=`basename $i`
# get username + password
user=$(grep user /etc/mysql/debian.cnf | awk \'{print $3}\' | head -n 1)
pass=$(grep pass /etc/mysql/debian.cnf | awk \'{print $3}\' | head -n 1)
# do the dump
mysqldump --user="$user" --password="$pass" --ignore-table=mysql.event $name | gzip > /var/backups/mysql/$name.gz
done
}
然后在POST\\u备份中,我使用
s3cmd:
# This user-defined bash function is executed after a backup is made
POST_BACKUP ()
{
# e. g., restart some mail/db server if its files are to be backup\'ed/
/usr/bin/s3cmd sync -c /home/myhomedir/.s3cfg --delete-removed /var/backups/localhost/ s3://my-bucket-name/
}
AWS有“
Versioning“这意味着,如果有人访问了您的服务器,并使用IAM凭据从您的bucket中删除了备份文件,您仍然可以将其取回。