本人迁移/重装服务器需要用到的脚本。
#!/usr/bin/env bash
# 备份服务器数据
set -e
backup_dir="migrate"
backup_list=(
"/etc/cron.d/backup_data"
"/root/shfiles"
"/root/dockers"
"/srv"
"/usr/local/nginx/conf/vhost/"
"/usr/local/nginx/conf/rewrite/"
"/usr/local/nginx/conf/wildcard/"
)
[ -d "$backup_dir" ] && rm -rf "$backup_dir"
mkdir -p "$backup_dir"
pushd "${backup_dir}" >/dev/null 2>&1 || exit 1
# shellcheck disable=SC2068
for _FILE in ${backup_list[@]}; do
if [ -f "$_FILE" ] || [ -d "$_FILE" ]; then
rsync -av --relative "$_FILE" ./
fi
done
popd >/dev/null 2>&1 || exit 1
printf "Migrage Done.\n"
# 1. 若使用 oneinstack,请记住要备份整站(数据库和网站),然后再备份,即
# 先安装备份信息:
# ./oneinstack/backup_setup.sh
# 再备份数据:
# ./oneinstack/backup.sh
# 同步到目标服务器:
# rsync -av --relative "/data/backup" remote:/data
# 注意:应该直接备份到目标站点,防止空间不足
# 2. 将所有需要备份的数据迁移到目录 migrate 后,需要再将此目录同步到目标服务器
# rsync -av --relative ./migrate remote:/migrate
# 3. 若是迁移的源服务器、目标服务器均为腾讯云服务,可以使用 rclone 工具备份到 COS,以方便恢复数据。
# 详情,请查阅 rclone 官方文档:https://rclone.org/
# 其它云平台同理(按 rclone 支持的对象存储,比如阿里云等云服务商),走内网不需要流量。
#