一,定时备份mysql数据库
安全起见,直接用Root执行的:
代码如下 | 复制代码 |
/root/mysql_backup.sh # everyday 3:00 AM execute database backup 3 0 * * * /root/mysql_backup.sh |
以下是自动自动备份shell,只保留最新5天
代码如下 | 复制代码 |
#!/bin/sh # mysql_backup.sh: backup mysql databases and keep newest 5 days backup. # # db_user is mysql username # db_passwd is mysql password # db_host is mysql host # —————————– db_user="root" db_passwd="zhoz.com" db_host="localhost" # the directory for story your backup file. # date format for backup file (dd-mm-yyyy) # mysql, mysqldump and some other bin's path # check the directory for store backup is writeable # the directory for story the newest backup # get all databases # delete the oldest backup # rotate backup directory |
上面备份不会自动上传到ftp服务器了,我们可以参考下面实例
二,自动备份mysql并上传到远程ftp脚本
生产需要,在centos 5.4下自动备份mysql数据库并上传到远程ftp,花了点时间,脚本如下:
代码如下 | 复制代码 |
#!/bin/bash #auto ftp bakup #by xhat 2010.06.08 #要备份的数据库 #ftp账号信息 #mysql账号信息 BackupPath=./ NewFile="$BackupPath"db$(date +%y%m%d).tar.gz echo "---------------------------" #删除 #新 echo "打开ftp" echo "备份完成" |
完成上面脚本后,在crontab里面加入每天凌晨定时执行即可。
代码如下 | 复制代码 |
10 3 * * * /opt/bak/mybak |
小结
其实方法一我们可以使用rsync同步来进行同步己经备份好的数据,在ftp与rsync相比rsync性能与稳定性是ftp无法比较的。