页面: 1
1.新建backup文件夹,可以放置在/home/username或者/public_html/backup下都可以
2.在backup文件夹下新建backup.sh文件【权限给700即可】
3.在backup.sh中输入下列内容:
cd /home/username/backup/
mysqldump -u数据库的用户名 -p数据库密码 数据库名称 > db_backup.sql
bzip2 -z -9 -f db_backup.sql
ftp -n<<!
open ftp.domain.com 21
user ftpuser ftppassword
binary
cd /
lcd /home/username/backup/
prompt
mput db_backup.sql.bz2 db_backup.sql.bz2
close
bye !mysqldump使用说明:
mysqldump -ubackup -p123456 -h 192.168.1.2 backup_test > D:\bak\bakcup.sql
在这段命令中:
mysqldump 是myqldump的程序名了;
-u 是数据库的用户名,后面紧跟着用户名backup;
-p 是数据库的密码,后面同样紧跟着密码,注意是-p和密码之间不能有空格;
-h 是数据库的地址,如果没有此项表明是备份本地的数据库;
backup_test 要备份的数据库名称;
> 表明该数据库备份到后面的文件,紧跟当然是备份文件的地址了,注意要用绝对文件路径,文件的后缀也可以用.txt。
一旦执行该命令后,mysqldump立即执行备份操作。远程备份数据库要似乎网络的情况,一般远程备份需要一定的时间的。
如果把这个命令写成批处理文件,通过windows的计划任务可以实现定时备份数据。
在windows下用mysqldump备份数据库,因为没有gzip的压缩引擎,因此不能对备份数据库进行压缩,因此如果备份文件多了要经常清理过期的数据库备份文件。如果要备份后的文件名称是按照日期命名的,可以这样:
cd /home/username/backup/
DATE=`date +%Y_%m_%d`
mysqldump -u数据库的用户名 -p数据库密码 数据库名称 > db_backup_$DATE.sql
bzip2 -z -9 -f db_backup_$DATE.sql
ftp -n<<!
open ftp.domain.com 21
user ftpuser ftppassword
binary
cd /
lcd /home/username/backup/
prompt
mput db_backup_$DATE.sql db_backup_$DATE.sql
close
bye !如需GZIP压缩,可以将
bzip2 -z -9 -f db_backup_$DATE.sql修改为:(不过感觉压缩率没有bzip2高)
gzip -9 db_backup_$DATE.sql上传到FTP部分的参考说明:
ftp -n<<!
open 192.168.1.1 21 #打开ftp服务器。21为ftp端口
user admin 123456 #用户名、密码
binary #设置二进制传输
cd mysqlbak #进入ftp目录(注意:这个目录必须真实存在)
lcd /home/mysql_data #列出本地目录
prompt
mput mysqldata_bak_$date.tar.gz mysqldata_bak_$date.tar.gz #上传目录中的文件
mdelete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份
close #关闭
bye ! #退出删除命令,不过我没有使用,根据实际需求使用
rm -f db_backup_$DATE.sql不过上面的删除7天前备份的这条命令我没有尝试成功
deldate=` date -d -7day +%Y_%m_%d ` #删除ftp服务器空间7天前的备份mdelete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份离线
在Corn添加一行定时运行的命令即可:
/home/username/backup/backup.sh离线
页面: 1