MySQL和文件备份脚本
这是一个在CentOS系统下运行的备份脚本,用于备份MySQL数据库和指定文件目录,将备份文件压缩后通过SCP上传到远程服务器。
功能特点
- 从配置文件读取MySQL连接信息、备份目录和远程服务器信息
- 备份MySQL数据库(包括存储过程、触发器和事件)
- 备份指定的文件目录
- 使用gzip压缩MySQL备份文件
- 使用tar.gz压缩文件目录备份
- 通过SCP安全传输备份文件到远程服务器
- 支持自定义配置文件路径
- 详细的日志记录功能
依赖项
在使用此脚本前,请确保系统已安装以下软件包:
yum install -y mysql sshpass
配置说明
在运行脚本前,请先编辑config.ini
文件,填入正确的配置信息:
[mysql]
host=localhost # MySQL服务器地址
port=3306 # MySQL服务器端口
user=your_mysql_user # MySQL用户名
password=your_mysql_password # MySQL密码
database=your_database_name # 要备份的数据库名称
[backup]
local_backup_dir=/path/to/backup/dir # 本地备份目录
file_backup_paths=/path/to/backup/dir1,/path/to/backup/dir2 # 要备份的文件目录,多个目录用逗号分隔
[sftp]
host=sftp.example.com # 远程服务器地址
port=22 # 远程服务器端口
user=your_sftp_user # 远程服务器用户名
password=your_sftp_password # 远程服务器密码
remote_dir=/path/to/remote/backup/dir # 远程备份目录
使用方法
- 确保脚本具有执行权限:
chmod +x backup.sh
- 运行脚本:
./backup.sh
- 如果要使用自定义配置文件,可以指定配置文件路径:
./backup.sh /path/to/your/custom_config.ini
备份文件说明
脚本会在本地备份目录中生成以下文件:
- MySQL备份文件:
mysql_backup_YYYYMMDD_HHMMSS.sql.gz
- 文件目录备份:
files_backup_YYYYMMDD_HHMMSS.tar.gz
所有备份文件会自动通过SCP上传到远程服务器的指定目录中。
日志记录
脚本运行过程中会记录详细的操作日志,包括:
- 备份开始和结束时间
- MySQL备份状态
- 文件目录备份状态
- 文件压缩信息
- 远程传输结果
- 错误和警告信息
日志文件默认保存在备份脚本所在目录下的backup.log文件中。
注意事项
- 请确保配置文件中的密码信息安全,不要将其暴露给未授权的用户
- 建议将此脚本添加到crontab中定期执行
- 如果备份文件较大,上传过程可能需要较长时间
- 请确保本地备份目录有足够的磁盘空间
- 定期检查日志文件,及时发现和处理可能的问题
定时任务设置示例
如果要设置每天凌晨3点自动执行备份,可以添加以下crontab任务:
0 3 * * * /path/to/backup.sh > /path/to/backup.log 2>&1
通过这种方式,备份过程的所有输出都会被记录到日志文件中,方便后续查看和问题排查。
评论0
暂时没有评论