下面是关于“Linux数据库备份并通过FTP上传脚本分享”的完整攻略。
前置条件
在进行以下操作之前,请确保已经:
- 安装 MySQL 数据库
- 熟悉 MySQL 命令行操作
- 安装了 FTP 工具,比如 lftp
步骤一:编写备份脚本
下面是针对 MySQL 数据库编写备份脚本的示例代码:
#!/bin/bash
# 设置数据库参数
DB_HOST=localhost
DB_NAME=mydb
DB_USER=myuser
DB_PASS=mypassword
# 设置备份目录和文件名
BACKUP_DIR=/path/to/backup
BACKUP_FILE=mysql-`date +%Y%m%d%H%M%S`.sql
# 执行备份命令
mysqldump --opt -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_DIR/$BACKUP_FILE
# 删除七天之前的备份文件
find $BACKUP_DIR/ -type f -name "*.gz" -mtime +7 -exec rm {} \;
这个脚本做了以下几个事情:
- 设置了数据库参数:主机、名称、用户名和密码。
- 设置了备份的目录和文件名。
- 使用
mysqldump
命令备份数据库,并将结果保存到指定目录下的备份文件中。 - 使用 gzip 压缩备份文件并删除七天前的备份文件。
可以将这个脚本命名为 mysql-backup.sh
并保存到 /path/to/backup
目录下。
步骤二:设置 FTP 上传脚本
下面是设置 FTP 上传脚本的示例代码:
#!/bin/bash
# 设置 FTP 服务器参数
FTP_HOST=ftp.example.com
FTP_USER=myuser
FTP_PASS=mypassword
# 设置本地目录和远程目录
LOCAL_DIR=/path/to/backup
REMOTE_DIR=/remote/path/to/backup
# 连接 FTP 服务器
lftp -c "open ftp://$FTP_USER:$FTP_PASS@$FTP_HOST; cd $REMOTE_DIR; lcd $LOCAL_DIR; mirror -R"
这个脚本做了以下几个事情:
- 设置了 FTP 服务器的参数:主机、用户名和密码。
- 设置了本地目录和远程目录。
- 使用
lftp
连接 FTP 服务器并进行镜像上传。
可以将这个脚本命名为 ftp-upload.sh
并保存到任意位置。
步骤三:添加定时任务
将备份脚本和 FTP 上传脚本放在同一个目录下,并使用 chmod +x
命令添加可执行权限。
然后,使用 crontab -e
命令编辑当前用户的定时任务,添加以下行:
0 0 * * * /path/to/backup/mysql-backup.sh && /path/to/upload/ftp-upload.sh
这个任务会在每天午夜零点自动将 MySQL 数据库备份并上传到 FTP 服务器上。
示例
下面是两个示例:
示例一:备份 MySQL 数据库
假设我们有一个 MySQL 数据库,该数据库的主机名为 localhost
,名称为 test
,用户名为 root
,密码为 123456
。我们想要将这个数据库备份到 /backup
目录中,并在备份完成后压缩文件,以节省磁盘空间。
首先,要编写一个备份脚本,比如:
#!/bin/bash
# 设置数据库参数
DB_HOST=localhost
DB_NAME=test
DB_USER=root
DB_PASS=123456
# 设置备份目录和文件名
BACKUP_DIR=/backup
BACKUP_FILE=mysql-`date +%Y%m%d%H%M%S`.sql
# 执行备份命令
mysqldump --opt -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_DIR/$BACKUP_FILE
将该脚本保存到 /backup
目录下,并命名为 mysql-backup.sh
,然后给它添加可执行权限。
现在,执行该脚本就可以备份 MySQL 数据库了:
$ cd /backup
$ ./mysql-backup.sh
示例二:上传备份文件到FTP服务器
假设我们有一个 FTP 服务器,地址为 ftp.example.com
,用户名为 backupuser
,密码为 backuppass
,并且我们已经在该服务器上创建了一个名为 backup
的目录,用于保存备份文件。现在,我们想要将 /backup
目录下的文件上传到 FTP 服务器上。
我们可以编写一个上传脚本:
#!/bin/bash
# 设置 FTP 服务器参数
FTP_HOST=ftp.example.com
FTP_USER=backupuser
FTP_PASS=backuppass
# 设置本地目录和远程目录
LOCAL_DIR=/backup
REMOTE_DIR=/backup
# 连接 FTP 服务器
lftp -c "open ftp://$FTP_USER:$FTP_PASS@$FTP_HOST; cd $REMOTE_DIR; lcd $LOCAL_DIR; mirror -R"
将该脚本保存到 /backup
目录下,并命名为 ftp-upload.sh
,然后给它添加可执行权限。
现在,执行该脚本就可以将备份文件上传到 FTP 服务器了:
$ cd /backup
$ ./ftp-upload.sh
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux数据库备份并通过ftp上传脚本分享 - Python技术站