惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
小众软件
小众软件
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
博客园 - 【当耐特】
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
S
Secure Thoughts
O
OpenAI News
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
T
Tenable Blog
A
Arctic Wolf
L
LINUX DO - 热门话题
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
H
Heimdal Security Blog

qiaoqiao

outlook打开邮件报错Contacting the Server for Information 数据库同步工具 DBSwitch vs dbsyncer - qiaoqiao 记录下关于数据库的一些常用命令 - qiaoqiao 导出AD域环境下特定组成员 - qiaoqiao 记账后续 - qiaoqiao 连接网络共享打印机报错0x00000057 - qiaoqiao 为了一盘醋,包了一顿饺子(记账之路) - qiaoqiao windows远程桌面白屏解决办法 - qiaoqiao podman重启后容器无法自启动解决办法 - qiaoqiao win7电脑蓝屏,蓝屏代码:0x0000007B - qiaoqiao Deepseek R1本地部署 - qiaoqiao 免费博客方案:hugo+cloudflare - qiaoqiao Fail2ban防止暴力攻击 - qiaoqiao wireguard配置多节点组网 - qiaoqiao
将数据同步到云盘:openlist+rclone - qiaoqiao
qiaoqiao · 2025-11-10 · via qiaoqiao

为了保险起见,最好同步一份数据到云盘,这样本地硬盘挂了,至少还有云端的一份。同步方式是用openlist+rclone,云盘的话阿里云盘,天翼云盘等等只要可以被openlist挂载的都可以。当然cloudflare的对象存储也可以,但我担心会超额度,还是用云盘更保险。

实例1:备份mysql的数据库

这个操作可以用任意一台机器,首先需要安装mysqldump

安装mysqldump

sudo apt install mysql-client     //ubuntu系统

创建脚本

备份单个数据库

#!/bin/bash

# 数据库信息配置
DB_USER="user"          # 数据库用户名
DB_PASSWORD="123456"    # 数据库密码
DB_NAME="name"         # 数据库名称
DB_HOST="ip"
DB_PORT="3306"
# 备份保存路径
BACKUP_DIR="/backup/mysql"
DATE=$(date +%F)
FILENAME="${DB_NAME}_${DATE}.sql"
TARFILE="${FILENAME}.tar.gz"
# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"
# 开始备份
echo "[$(date)] 开始备份数据库 $DB_NAME ..."
mysqldump -h ${DB_HOST} -u$DB_USER -p$DB_PASSWORD -P${DB_PORT} $DB_NAME > "$BACKUP_DIR/$FILENAME"
# 压缩备份
tar -czf "$BACKUP_DIR/$TARFILE" -C "$BACKUP_DIR" "$FILENAME"
rm "$BACKUP_DIR/$FILENAME"
echo "[$(date)] 备份完成:$TARFILE"
# 自动删除7天前的旧备份
find "$BACKUP_DIR" -name "${DB_NAME}_*.tar.gz" -mtime +7 -exec rm {} \;
echo "[$(date)] 清理7天前备份完成"

备份多个数据库

#!/bin/bash
# mysql_multi_backup.sh

# 配置
MYSQL_USER="user"
MYSQL_PASSWORD="123456"
MYSQL_HOST="ip"
MYSQL_PORT="3306"
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d)

# 要备份的数据库列表
DATABASES=("db1" "db2" "db3")

# 创建备份目录
mkdir -p $BACKUP_DIR

echo "开始MySQL备份 - $(date)"

# 备份每个数据库
for DB in "${DATABASES[@]}"; do
    BACKUP_FILE="$BACKUP_DIR/${DB}_${DATE}.sql.gz"
    echo "备份数据库: $DB"
    
    mysqldump -h $MYSQL_HOST -P$MYSQL_PORT -u $MYSQL_USER -p$MYSQL_PASSWORD $DB | gzip > $BACKUP_FILE
    
    if [ $? -eq 0 ]; then
        echo "✓ $DB 备份成功"
    else
        echo "✗ $DB 备份失败"
    fi
done

# 清理旧备份(保留7天)
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "所有数据库备份完成 - $(date)"

添加执行权限

chmod +x /backup/mysql_backup.sh

设置定时任务

crontab -e
0 2 * * * /backup/mysql_backup.sh   //每天2点执行

rclone配置

安装rclone

sudo apt install rclone   //ubuntu系统

运行配置命令

rclone config

按着提示一步步操作即可
列出 WebDAV 根目录

rclone lsd my_webdav:

同步 同步是保持两端一致,如果目的路径有其他文件,会被删除掉。

rclone sync /backup/mysql openlist:aliyun/backup/mysql     //name是openlist,aliyun/backup/mysql是同步目的的路径

备份

rclone copy /backup/mysql openlist:aliyun/backup/mysql

同样的做个定时任务。

实例2:备份postgresql的数据库

安装pg_dump

sudo apt-get install postgresql-client     //ubuntu系统

查看路径

which pg_dump

报错

pg_dump: error: aborting because of server version mismatch

因为版本不匹配

升级pg_dump

1.添加官方存储库
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
2.导入存储库的 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
3.更新包列表
4.升级
sudo apt-get install postgresql-client-17

创建脚本

备份单个数据库

#!/bin/bash
# postgres_simple_backup.sh

# 基本配置
PG_HOST="ip"
PG_PORT="5432"
PG_USER="user"
PG_PASSWORD="123456"
DB_NAME="dbname"
BACKUP_DIR="/backup/postgres"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 设置密码
export PGPASSWORD=$PG_PASSWORD

# 执行备份(每天一个文件)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$(date +%Y%m%d).sql.gz"

echo "开始备份数据库: $DB_NAME - $(date)"

# 备份并压缩
pg_dump -h $PG_HOST -p $PG_PORT -U $PG_USER $DB_NAME | gzip > $BACKUP_FILE

if [ $? -eq 0 ]; then
    echo "✓ 备份成功: $BACKUP_FILE"
else
    echo "✗ 备份失败"
fi

# 清理7天前的备份
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "备份完成 - $(date)"

# 清理密码
unset PGPASSWORD

备份多个数据库

#!/bin/bash
# postgres_multi_backup.sh

# 配置
PG_HOST="ip"
PG_PORT="5432"
PG_USER="user"
PG_PASSWORD="123456"
BACKUP_DIR="/backup/postgres"
DATE=$(date +%Y%m%d)

# 要备份的数据库列表
DATABASES=("umami" "mydb")

# 设置密码
export PGPASSWORD=$PG_PASSWORD

# 创建备份目录
mkdir -p $BACKUP_DIR

echo "开始PostgreSQL备份 - $(date)"

# 备份每个数据库
for DB in "${DATABASES[@]}"; do
    BACKUP_FILE="$BACKUP_DIR/${DB}_${DATE}.sql.gz"
    echo "备份数据库: $DB"
    
    pg_dump -h $PG_HOST -p $PG_PORT -U $PG_USER $DB | gzip > $BACKUP_FILE
    
    if [ $? -eq 0 ]; then
        echo "✓ $DB 备份成功"
    else
        echo "✗ $DB 备份失败"
    fi
done

# 清理旧备份(保留7天)
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "所有数据库备份完成 - $(date)"

unset PGPASSWORD

其余与上面一致,当执行脚本的时候报错:postgres.sh: 13: Syntax error: "(" unexpected
执行脚本时将sh postgresql.sh改成bash postgresql.sh