Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/since2006.com/public_html/include/util/Ubb.php on line 249
将VPS数据库自动备份到另一台FTP服务器 - since.2006 -  

since.2006  

现在大部分VPS都是Unmanaged的,虽然都宣称做了RAID10但在论坛上偶尔还是有看到数据丢失的事情,更多的情况是碰到不符合VPS商的服务条款而被关闭了帐号没及时备份造成的。

正好有一个15刀/年的VPS,由于拿来放网站线路经常抽风所以一直空在那里,现在可以派上用场了。

首先确保正式服务器上安装了lftp(ftp命令行客户端),备份服务器上安装了ftp服务端(任意)。

第一次折腾bash,现学现卖,功能是备份mysql中一个或多个数据库并打包传送到远程ftp服务器中去:

#!/bin/bash

# --------------- 配置项 -------------
# 数据库用户
DB_USER="root"
# 数据库密码
DB_PASSWD="123456"
# 要备份的数据库名,多个用空格分开
DB_BACKUP_DATABASE_LIST="db1 db2"
# 备份文件本地存放路径
DB_BACKUP_DIR="/home/hee/backup/db"
# 远程FTP配置信息,格式:用户名:密码@服务器地址
REMOTE_FTP_DSN="user:passwd@ip"

# ------------ 以下内容无需编辑 -------------
YYYYMMDD=$(date +%Y-%m-%d)

# -----------------------------------
DB_BACKUP_FILE="$DB_BACKUP_DIR/$YYYYMMDD.sql.gz"

# -----------------------------------
mkdir -p $DB_BACKUP_DIR
cd $DB_BACKUP_DIR

mysqldump --user=$DB_USER --password=$DB_PASSWD --lock-all-tables --databases $DB_BACKUP_DATABASE_LIST | gzip > $DB_BACKUP_FILE

lftp $REMOTE_FTP_DSN -e "put $DB_BACKUP_FILE;exit;"

然后设置一个定时任务,按想要的时间定时执行一下就OK了。

vi /etc/crontab

01 13 * * * elliott /home/username/bak.sh

每天中午1点1分执行备份操作。


标签:

Posted by hee at 09:11 AM | Permalink | 评论(1) | Linux

4755 天 15 小时前
沙发 奖杯制作 说:

这个是好东西啊! 有没有将文件打包并发邮件备份的啊?

请输入名称
请输入邮件地址

 

    请输入邮件地址