01. rsync——同步神器
rsync 是 Linux 里最牛的同步工具。跟 cp 不一样,它只传改变的部分,第二次同步贼快。还能跨服务器同步、断点续传。就像搬家公司先看屋里哪些东西没搬过的,只搬没搬的:
bash
rsync -av /source/ /dest/ # 本地同步
rsync -av /source/ user@server:/dest/ # 同步到远程
rsync -av --delete /source/ /dest/ # 目标目录多出来的文件也删掉
rsync -av --exclude="*.log" /src/ /dest/ # 排除 .log 文件
rsync -avz /source/ user@server:/dest/ # -z 压缩传输,省带宽
rsync -avP /large/file user@server:/dest/ # -P 断点续传 + 进度条
# 常用组合:-avzP,几乎万能
rsync -avzP --delete /var/www/ backup@nas:/backups/www/--delete 会让目标目录跟源目录完全一样。源目录没有的文件目标目录也会被删,小心别搞反了方向。
02. tar 备份——打个包存起来
简单粗暴的全量备份就用 tar。把整个目录打成一个压缩包,往备份目录或外接硬盘一丢:
bash
# 全量备份
tar -czpf /backup/www-$(date +%Y%m%d).tar.gz /var/www
# 增量备份思路(配合 find)
find /var/www -mtime -1 -type f | tar -czf /backup/www-inc-$(date +%Y%m%d).tar.gz -T -
# 恢复
tar -xzf /backup/www-20260628.tar.gz -C /tmp/restore/03. 数据库备份——mysqldump / pg_dump
光备份文件不够,数据库里存着你最值钱的数据。MySQL/PostgreSQL 各有自己的备份工具:
bash
# MySQL/MariaDB 备份
mysqldump -u root -p --all-databases > all-db-$(date +%Y%m%d).sql
mysqldump -u root -p mydb > mydb-backup.sql # 单个数据库
mysqldump -u root -p mydb users > users-backup.sql # 单张表
mysqldump -u root -p --no-data mydb > mydb-schema.sql # 只要表结构
# MySQL 恢复
mysql -u root -p mydb < mydb-backup.sql
# PostgreSQL 备份
pg_dump -U postgres -Fc mydb > mydb.dump # 压缩格式
pg_dump -U postgres mydb > mydb.sql # 纯 SQL
# PostgreSQL 恢复
pg_restore -U postgres -d mydb mydb.dump
psql -U postgres -d mydb < mydb.sql建议在备份脚本里加上日期后缀,保留多份——万一上一份有问题还有更早的能恢复。
知识测验
第 1/4 题正确 0
rsync 的 --delete 是什么作用?
下一节
下一节 用户与组管理进阶