10秒后自动关闭
如何定期自动备份网站,提供三种免费方法

在日常工作中,我们发现很多用户没有定期备份数据的习惯,当被黑客入侵删除数据或是中了勒索病毒后,才后悔莫及。定期备份数据对网站来说,是必不可少的管理工作。


如果只是本地定期备份数据,是不需要花钱的,有多种方法实现。

1、 手工定期备份

2、 编写脚本定期备份

3、 使用免费备份软件


手工定期备份,这个没啥说的,就是定期人工将数据打包备份,缺点就是容易忘记,也很琐碎,一般不推荐。


编写定期备份脚本也非常简单,思路:复制文件到备份目录下的日期子目录。

然后使用计划任务定期执行这个脚本就可以了。


Windows代码如下:

@echo off
setlocal

:: 获取当前日期,格式为YYYY-MM-DD(注意:这里使用了短横线作为分隔符)
for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set datetime=%%i
set datetime=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%


:: 定义源目录和目标目录
set "source=D:\wwwroot" ::需要备份的源目录
set "destination=D:\Backup\%datetime%" ::备份文件存放目录,请勿包含中文


:: 创建目标目录(如果不存在)
if not exist "%destination%" mkdir "%destination%"

:: 复制文件,包括子目录和隐藏文件
xcopy /E /I /H /C /Y "%source%" "%destination%"

:: 提示完成
echo Backup completed at %datetime%

:eof
endlocal


Linux代码如下:

#!/bin/bash

# 获取当前日期,格式为YYYY-MM-DD
datetime=$(date +"%Y-%m-%d")

# 定义源目录和目标目录
source="/www/wwwroot"  # 需要备份的源目录
destination="/backup/${datetime}" # 备份文件存放目录,请勿包含中文

# 创建目标目录(如果不存在)
mkdir -p "${destination}"

# 复制文件,包括子目录和隐藏文件
# 在Linux中,隐藏文件以"."开头,rsync可以很好地处理这些文件
rsync -av --include='*/' --include='.*' --exclude='*' "${source}/" "${destination}/"
# 注意:上面的rsync命令可能不会按预期复制隐藏文件,因为它首先排除了所有文件。
# 一个更简单的方法是使用cp命令的-r(递归)和-a(归档模式,保留属性)选项,但cp不直接支持隐藏文件的特殊处理。
# 如果确实需要复制所有隐藏文件,可以考虑使用find命令结合cp。
# 下面是一个使用find命令的示例:
find "${source}" -mindepth 1 -maxdepth 1 -exec cp -rp {} "${destination}/" \;
# 但是,上面的find命令只会复制源目录的直接内容,不会递归复制子目录。
# 为了递归复制所有内容(包括隐藏文件和目录),可以使用下面的rsync命令,它经过修正可以正确处理隐藏文件:
rsync -a --exclude='*/..?' "${source}/" "${destination}/"
# --exclude='*/..?' 排除了源目录本身(如果它是一个单独的目录而不是文件集合的话),但允许递归复制其内容,同时包括隐藏文件。

# 提示完成
echo "Backup completed at ${datetime}"


至于第三种,使用软件自动备份,这个更简单,主要需要一款免费备份的软件,可以使用《护卫神.好备份(免费版)》,安装后添加备份规则(下图一)就可以了。

该软件有如下优点:支持压缩备份、支持一键还原、支持排除文件、支持差异备份、支持压缩分卷、支持文件加密,当然最大的优点是:免费的。

 (图一:添加备份任务)

 (图一:添加备份任务)


可以设置高级筛选规则,如下图二

文件筛选

  (图二:文件筛选)


查看备份日志:

 (图三:备份日志)

 (图三:备份日志)


还支持一键还原备份数据,如下图四

一键还原备份

  (图四:一键还原备份)