centos简单文件备份
1. 背景
现在有一个正在使用的服务器, 需要对服务器上的数据库数据、实验室文件以及采购平台文件进行备份,
将备份文件存储到另外一个服务器上, 要求留存最近七天的备份文件.
2.详细步骤
2.1 备份环境
- 在新服务器创建备份目录:
mkdir /opt/backup - 目录权限:
chmod 700 /opt/backup
2.2 SSH免密
- 旧服务器生成密钥对:
ssh-keygen -t rsa - 配置免密(需要输入备份服务器密码):
ssh-copy-id -i ~/.ssh/id_rsa.pub user@new_server_ip - 验证能否直接登录:
ssh user@new_server_ip
2.3 备份脚本
vim /opt/backup.sh
#!/bin/bash
# 备份日期
BACKUP_DATE=$(date +%Y%m%d)
# 备份服务器信息
NEW_SERVER="user@new_server_ip"
# 数据库用户
MYSQL_USER="backup_user"
# 数据库密码
MYSQL_PASS="your_password"
# 现有服务器临时备份目录
BACKUP_DIR="/tmp/backup/${BACKUP_DATE}"
# 现有服务器日志文件目录(存备份过程中的日志)
BACKUP_LOG_DIR="/var/log/backup/"
# 备份服务器备份目录
BACKUP_TAR_DIR="/opt/backup/"
# 创建临时目录
mkdir -p ${BACKUP_DIR}
# 创建备份日志目录
mkdir -p ${BACKUP_LOG_DIR}
{
# 备份MySQL数据库并压缩(-u和-p后面不要有空格)
mysqldump --single-transaction -u${MYSQL_USER} -p${MYSQL_PASS} --databases "db1" "db2" | gzip > ${BACKUP_DIR}/db_${BACKUP_DATE}.sql.gz
# 备份采购文件
rsync -avz --delete /var/www/uploads/purchase/ ${BACKUP_DIR}/files-purchase/
# 备份实验室文件
rsync -avz --delete /var/www/uploads/lab/ ${BACKUP_DIR}/files-lab/
# 打包文件备份并压缩(${BACKUP_DIR}目录下现在有一个文件和两个文件夹)
tar czf ${BACKUP_DIR}/${BACKUP_DATE}.tar.gz -C ${BACKUP_DIR} .
# 打包文件传输到备份服务器的BACKUP_TAR_DIR目录
scp -r ${BACKUP_DIR}/${BACKUP_DATE}.tar.gz ${NEW_SERVER}:${BACKUP_TAR_DIR}
# 清理备份服务器旧备份(保留7天)
# -mindepth 是保护不会将${BACKUP_TAR_DIR}删除的,如果scp失败了目录日期是不会修改的
ssh ${NEW_SERVER} "find ${BACKUP_TAR_DIR} -mindepth 1 -type d -mtime +7 -exec rm -rf {} \;"
# 清理临时文件
rm -rf ${BACKUP_DIR}
# 输出完成,添加时间记录
echo "backup done. timedatectl:";
timedatectl;
} >> "${BACKUP_LOG_DIR}/${BACKUP_DATE}.log" 2>&1
2.4 脚本执行权限
chmod +x /opt/backup.sh
2.5 定时任务
echo "0 2 * * * root /opt/backup.sh" > /etc/cron.d/backup_job
2.6 恢复流程
根据实际情况可以现解压再覆盖, 覆盖前做好备份
- 数据库:
zcat /backup/db_20250408.sql.gz | mysql -u root -p - 文件:
tar xzf /opt/backup/20231001.tar.gz -C /var/www/uploads/
centos简单文件备份的更多相关文章
- 基于腾讯云centos简单搭建VSFTP
基于腾讯云centos7.3搭建VSFTP 环境分析: 基于vsftp服务在于云主机上,所以推荐使用FTP的PASV模式: FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动 ...
- 07 CentOS简单命令与XShell简单使用
关机 poweroff 重启 init 6 查看ip地址 ifconfig 查看当前目录下的文件与目录 ls ll 判断命令是内部还是外部的类型 type ifconfig 通过file /sbin/ ...
- CentOS 简单命令
一.启动级别 Linux系统设置系统启动模式的方式可以修改(必须要以root身份登录才能修改).修改系统启动模式的配置文件是 /etc/inittab. 我们在切换到root用户后,然后 vi / ...
- CentOS 简单学习 firewalld的使用
1. centos7 开始 使用firewalld 代替了 iptables 命令工具为 firewall-cmd 帮助信息非常长,简单放到文末 2. 简单使用 首先开启 httpd 一般都自带安装了 ...
- CentOS简单命令学习:date cal bc
简单的shell指令: 1.日期的格式化显示: 2.日历的显示: 3.bc计算器: 使用Tab指令自动补全:
- Docker之centos 简单安装
centos6因为系统自带的可执行的应用程序与 docker 包名字发生冲突,所以重新命名 docker 的RPM包名字为 docker-io. 首先卸载docker包 sudo yum -y rem ...
- CentOS 简单设置samba服务
1.安装 yum -y install samba 2.设置配置文件 1) 备份Samba的配置文件:cp /etc/samba/smb.conf /etc/samba/smb.conf.bak ...
- centos简单的后台运行
# 忽略输出文件 nohup java FileTest > /dev/null 2>&1 &
- centos 简单用户管理
一.配置文件 /etc/passwd:存放用户信息,以“:”分割成7个部分 1.账号名称,用来对应UID: 2.早期密码存放位置,后来密码改存/etc/shadow中,以“x”代替: 3.UID,使用 ...
- centos简单命令备忘
1.查看当前目录 [root@instance-aif30iaj bin]# df -h 2.查看指定目录 在命令后直接放目录名,比如查看"usr"目录使用情况: [root@in ...
随机推荐
- linux:问题诊断
查看带宽 1.安装 iftop 工具(iftop 工具为 Linux 服务器下的流量监控小工具) yum install iftop -y 说明:若是是 Ubuntu 系统,请执行 apt-get i ...
- 牛客周赛 Round 77
题目链接:牛客周赛 Round 77 A. 时间表 tag:签到 B. 数独数组 tag:签到 Description:给定n个数,每个数的范围为1-9,问能否经过排列,使其每个长度为9的连续子数组都 ...
- SQL Server与ORACLE数据库存储过程编写的几个不同之处
一直在使用SQL Server数库的存储过程进行业务数据处理,现在ORACLE上进行存储过程应用,感觉没有MSSQL的方便灵活,总结了以下几点区别: 1.入参数据类型不要书写长度.比如:userNam ...
- VS2022编译项目出现““csc.exe”已退出,代码为 -1073741819”的错误解决办法
1.问题描述 编译出错如下图所示: 2.解决办法 在NuGet包中输入Microsoft.Net.Compilers,安装该包,安装完后重新生成就不报错了,如下图所示:
- Q:oracle库,同时更新表的两个字段?
在执行这些操作之前,建议先备份数据或在一个测试环境中验证这些SQL语句的效果,以避免意外的数据丢失. 1.使用 UPDATE 结合子查询: 对于t2表中col字段为空的记录,如果t1表中有对应的col ...
- 数据同步-同步mysql到iceberg后如何确定数据一致性
一.数据打快照做数据比较 1.mysql创建快照 优点:可以选择时间做快照,然后对比 缺点:需要额外的存储空间和处理时间,不好自动化,大表做快照成本高 2.实现方式 create database 快 ...
- deepseek等AI工具是程序员技能发展的双刃剑
2025年,全球已有73%的程序员日常使用AI编码工具(Gartner 2025Q1数据).当我们惊叹于GitHub Copilot生成完整功能模块仅需10秒时,也需要警惕一个现象:新一代程序员在ID ...
- day:3软件测试分类
一.按开发阶段划分 (1)单元测试 (2)集成测试 (3)系统测试 (4)验收测试 二.按查看代码分类 (1)黑盒测试 定义:是一种功能测试,测试中把测试的软件当成一个盒子,不关心盒子内部结构是什么, ...
- Android设备基础信息获取 源码修改方式 APK开发
APK 获取设备信息 头文件 import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import ...
- 启动Eclipse时报错如何解决?
启动Eclipse出现弹框,弹框报错内容如下: A Java Runtime Enviroment(JRE)or Java Development Kit(JDK) must be available ...